私は次のモデル(ユーザー、レビュー、および期間)を持っています。私がやりたいことは、複数のユーザー (またはすべて) を選択できるチェックボックスをユーザー インデックス ビューに表示し、[レビューの作成] ボタンをクリックすると、次のようになることです。
- 選択したユーザーにレビュー レコードがあるかどうかを確認し、そうでない場合は、選択したすべてのユーザーに対してレビューレコードを作成します。
- また、これにより、「1」の period_id でレビュー レコードも更新されます。
これについてどうすればよいかわかりません。どんな助けでも大歓迎です。
前もって感謝します。
user.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
period.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