我有一個表格,我正嘗試設置... 用戶可以有很多帖子,每個帖子可以有很多人在看。如何預先檢查formtastic中的複選框
Watch模型被設置爲多變性的'watchable',因此它可以應用於不同類型的模型。它具有user_id,watchable_id,watchable_type和時間戳作爲屬性/字段。
這很簡單,以至於當人們對帖子發表評論時,觀看該帖子的用戶可以收到關於該帖子的電子郵件。
我想要做的是向用戶顯示他們可以在每個帖子上標記的用戶列表,這不是問題。這是我現在使用
<% 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 %>
這樣做的問題是什麼,就是當你去編輯更新/後...所有的複選框被prechecked ...我想它僅預先檢查當前正在觀看該帖子的用戶。
爲了進一步澄清...這是我得到它做什麼,我想現在
<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>
其中@watches的哈克的方式僅僅是用戶ID數組
@watches = @update.watches.map{|watcher| watcher.user_id}
pastie.org不工作。你能把代碼放在別的地方嗎? – kikito 2010-04-29 08:00:49
完成。感謝您看看它。 – concept47 2010-04-29 09:37:58