我有以下模型(用户、评论和期间)。我想要做的是在用户索引视图中有复选框,我可以在其中选择多个用户(或全部)并单击“创建评论”按钮,单击时它将:
- 检查选定的用户是否有评论记录,如果没有,则为所有选定的用户创建一条。
- 此外,这还将使用 period_id 为“1”更新评论记录
我不确定如何解决这个问题,非常感谢任何帮助。
先感谢您。
用户.rb
class User < ActiveRecord::Base
belongs_to :admin
has_many :reviews
has_many :periods, :through => :reviews
devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me,
:username, :first_name, :last_name, :role
end
评论.rb
class Review < ActiveRecord::Base
belongs_to :user
belongs_to :period
attr_accessible :employee_comments, :employee_final_comments, :manager_comments, :period_id, :rating, :review_status, :user_id
end
周期.rb
class Period < ActiveRecord::Base
belongs_to :admin
has_many :reviews
has_many :users, :through => :reviews
attr_accessible :admin_id, :end_date, :period_name, :start_date, :active
end
更新 1
我已将以下几行添加到我的 index.html.erb 中(基于 railscast http://railscasts.com/episodes/165-edit-multiple),但得到一个空白列表。如果我删除 form_tag 行,我可以看到带有复选框的用户列表。
应用程序/视图/用户/index.html.erb
<% form_tag create_multiple_users_path do %>
.
.
.
<th><%= check_box_tag "users_ids[]", user.id %></th>
<% end %>
.
.
.
<%= submit_tag "Create Reviews for selected users" %>
路线.rb
resources :users do
collection do
post 'create_multiple'
end
end