0

私は次のモデル(ユーザー、レビュー、および期間)を持っています。私がやりたいことは、複数のユーザー (またはすべて) を選択できるチェックボックスをユーザー インデックス ビューに表示し、[レビューの作成] ボタンをクリックすると、次のようになることです。

  1. 選択したユーザーにレビュー レコードがあるかどうかを確認し、そうでない場合は、選択したすべてのユーザーに対してレビューレコードを作成します。
  2. また、これにより、「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
4

1 に答える 1

1

フォームを使用してユーザーのリストを取得するには、変更する必要があります

<% form_tag create_multiple_users_path do %>

にとって

 <%= form_tag create_multiple_users_path do %>
于 2013-01-28T19:43:41.750 に答える