Ich habe ein Formular, das ich versuche einzurichten ... Benutzer können viele Beiträge haben, und jeder Beitrag kann viele Leute haben, die es beobachten.Wie Checkboxen in formtastic
Das Watch-Modell ist polymorph als "beobachtbar" eingerichtet, so dass es auf verschiedene Modelltypen angewendet werden kann. Es hat eine user_id, watchable_id, watchable_type und Zeitstempel als Attribute/Felder.
Dies ist soley, so dass Nutzer, die den Beitrag ansehen, per E-Mail darüber informiert werden können, wenn Nutzer einen Beitrag kommentieren.
Was ich versuche, ist, dem Benutzer eine Liste von Benutzern zu zeigen, die sie auf jedem Beitrag markieren können, was kein Problem ist. Das ist, was ich jetzt
<% semantic_form_for @update do |f| %>
<%= f.input :subject, :input_html => { :class => 'short' } %>
<%= f.input :site, :include_blank => false, :input_html => { :class => 'short' } %>
<label>Tag Users (they will get notified of this update)</label>
<%= f.input :user, :as => :check_boxes, :label => ' ', :wrapper_html => { :class => "radiolist clearfix" }, :for => :watch, :name => "Watch" %>
<%= f.input :note, :label => 'Update'%>
<% f.buttons do %>
<%= f.commit_button :button_html => { :class => 'submit' } %>
<% end %>
<% end %>
Das Problem dabei verwendet wird, ist, dass, wenn Sie ein Update/Post gehen zu bearbeiten ... alle Kontrollkästchen sind prechecked ... Ich möchte um nur die Benutzer zu überprüfen, die gerade den Beitrag sehen.
Zur weiteren Klärung ... dies der hacky Weg ist jetzt
<ul class="radiolist clearfix">
<% @users.each do |user| %>
<li>
<%= check_box_tag 'user_ids[]', user.id, @watches.include?(user.id) ? true : false -%>
<%= h user.name -%>
</li>
<% end %>
</ul>
wo @watches ist nur ein Array von Benutzer-IDs
@watches = @update.watches.map{|watcher| watcher.user_id}
pastie.org funktioniert nicht. Kannst du den Code woanders hinlegen? – kikito
erledigt. Danke, dass du es dir angesehen hast. – concept47