Wie zu pre-check-Kontrollkästchen in formtastic
Ich habe eine form, die ich bin, die versuchen, ...
Die Benutzer können viele Beiträge und jeder Beitrag kann, haben viele Menschen, die es ansehen.
Den Uhren-Modell eingerichtet ist polymorph wie 'watchable', so dass Sie anwenden können, um verschiedene Arten von Modellen. Es hat eine user_id, watchable_id, watchable_type und Zeitstempel als Attribute/Felder.
Ist dies ausschließlich so, dass, wenn Leute einen Kommentar auf einen post, Benutzer watching the post kann eine E-Mail erhalten darüber.
Was ich versuche zu tun, ist, dass der Nutzer eine Liste der Benutzer, dass Sie-tag auf jedes post, das ist kein problem. Dies 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 mit diesem ist, dass, wenn Sie gehen Sie zum Bearbeiten eines update/post ... alle Checkboxen sind prechecked ... ich will, dass es pre-check nur Benutzer, die aktuell gerade die post.
Weiter zu erklären ... das ist der hacky Weg, ich bin daran, es zu tun, was ich will 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 @ - Uhren ist einfach ein array von Benutzer-ids
@watches = @update.watches.map{|watcher| watcher.user_id}
- pastie.org funktioniert nicht. Kann man den code irgendwo anders?
- getan. Vielen Dank für die Einnahme einen Blick auf Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für jemand anderen mit dem gleichen Problem:
:as => :check_boxes
wenn Sie möchten, dass alle Kontrollkästchen aktiviertFür mehrere check-Boxen, auf diese Weise:
Setzt man das Boolesche Attribut den Wert "true" in den controller an, bevor Ihr machen, die form. Das sollte Formtastic standardmäßig das Kontrollkästchen 'aktiviert'.
Wenn du den Zustand der checkbox entsprechend den Wert von :some_input
In Ihrem Modell..
:some_input?
als truthy (weil es nichtnil
oderfalse
).