2016-04-25 8 views
0
<ul class="list"> 
     <% @freelancer.links.select {|link| ['Skype', 'ICQ', 'Jabber'].include? link.messenger_type.title }.each do |link| %> 
     <li class="list__item data"> 
      <span class="data__label"><%= link.messenger_type.title %>:</span> 
      <span class="data__value"><%= link.url %></span> 
     </li> 
    <% end %> 
    </ul> 

Modell Link.rbWie wählen Sie alle eindeutigen Werte aus dem Tag in meiner Situation aus?

# == Schema Information 
# 
# Table name: links 
# 
# id    :integer   not null, primary key 
# url    :string 
# freelancer_id  :integer 
# messenger_type_id :integer 
# 
# Indexes 
# 
# index_links_on_freelancer_id  (freelancer_id) 
# index_links_on_messenger_type_id (messenger_type_id) 
# 

ich nächsten Code habe, weicht alle Links wählen, WHE Messenger Typ umfasst [ 'Skype', 'ICQ', 'Jabber']. Wenn Benutzer doppelter Eingabe-Skype benötigt, brauchen Sie nur einen ersten Anzeige-Link auf der Seite. Wie kann ich einzigartige Links nach Art der Nachricht hinzufügen? Danke

Antwort

0

einen eindeutigen Index auf Links hinzufügen

add_index :links, [:freelancer_id, :messenger_type_id], unique: true 

Dann sollten Sie wahrscheinlich auch im Modell validieren

validates :messenger_type_id, uniqueness: { scope: :freelancer_id } 
+0

Ihnen danken, aber warum kannst du {Gültigkeitsbereich: freelancer_id}? – dev85

+0

Andernfalls würde die Eindeutigkeit von 'messenger_type_id' in der Datenbanktabelle überprüft. Wenn Sie beispielsweise einen Skype-Account haben, würde ich einen Fehler erhalten, wenn ich einen hinzufügen wollte. –

Verwandte Themen