Tôi có biểu mẫu tôi đang cố gắng thiết lập ... Người dùng có thể có nhiều bài đăng và mỗi bài đăng có thể có nhiều người xem bài đăng đó.Cách kiểm tra trước các hộp kiểm trong formtastic
Mô hình Đồng hồ được thiết lập đa hình là 'có thể xem' để có thể áp dụng cho các loại mô hình khác nhau. Nó có một user_id, watchable_id, watchable_type và timestamps dưới dạng thuộc tính/trường.
Đây là cách để khi mọi người nhận xét về bài đăng, người dùng xem bài đăng có thể nhận được email về bài đăng đó.
Những gì tôi đang cố gắng làm là hiển thị cho người dùng danh sách người dùng mà họ có thể gắn thẻ trên mỗi bài đăng, điều này không thành vấn đề. Đây là những gì tôi đang sử dụng ngay bây giờ
<% 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 %>
Vấn đề với điều này, đó là khi bạn đi đến chỉnh sửa cập nhật/bài ... tất cả các hộp kiểm được prechecked ... Tôi muốn nó chỉ được kiểm tra trước những người dùng hiện đang xem bài đăng.
Tiếp tục làm rõ ... đây là cách hacky tôi nhận được nó để làm những gì tôi muốn ngay bây giờ
<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>
nơi @watches chỉ là một mảng của id người dùng
@watches = @update.watches.map{|watcher| watcher.user_id}
pastie.org không hoạt động. Bạn có thể đặt mã ở một nơi khác không? – kikito
đã hoàn tất. Cảm ơn bạn đã xem nó. – concept47