Как предварительно проверить флажки в formtastic

У меня есть форма, которую я пытаюсь настроить... У пользователей может быть много сообщений, и каждое сообщение может иметь многих людей, наблюдающих его.

Модель Watch настраивается полиморфно как 'смотрибельная', таким образом, она может относиться к различным типам моделей. Это имеет user_id, watchable_id, watchable_type и устанавливает метку времени как атрибуты/поля.

Это - soley так, чтобы, когда люди комментируют сообщение, пользователи, смотрящие сообщение, могли получить электронное письмо об этом.

То, что я пытаюсь сделать, показать пользователю список пользователей, что они могут наклеить каждое сообщение, которое не является проблемой. Это - то, что я использую прямо сейчас

http://pastie.org/940421

<% semantic_form_for @update do |f| %>
      <%= f.input :subject, :input_html => { :class => 'short' } %>
      <%= f.input :site, :include_blank => false, :input_html => { :class => 'short' } %>
      
       <%= 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 %>

Проблема с этим, то, что, когда Вы идете для редактирования обновления/сообщения..., все флажки предварительно проверяются... Я хочу, чтобы это предварительно проверило только пользователей, которые в настоящее время смотрят сообщение.

Для дальнейшего разъяснения..., это - hacky способ, которым я заставляю это делать то, что я хочу прямо сейчас

    <% @users.each do |user| %>
  • <%= check_box_tag 'user_ids[]', user.id, @watches.include?(user.id) ? true : false -%> <%= h user.name -%>
  • <% end %>

где @watches является просто массивом идентификаторов пользователей

@watches = @update.watches.map{|watcher| watcher.user_id}

16
задан Rimian 16 February 2013 в 01:50
поделиться