役割を持つ特定のユーザーにいくつかのホステル属性を割り当てる必要があるこのプロジェクトに取り組んでいます。devise、rolify、cancanを使ってホステルモデルとユーザーモデルを作成しました。また、属性としてホステル ID とユーザー ID を持つ割り当てモデルも作成しました。以下は、より良いチェックのための私のコードです。
私のホステルモデル
class Hostel < ActiveRecord::Base
has_many :assign_hostels
attr_accessible :name, :location, :picture
default_scope :order => 'id DESC'
end
ユーザーモデル
class User < ActiveRecord::Base
has_many :assign_hostels
attr_accessible :email, :password, :first_name, :lastname, :oname
rolify
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
私の assign_hostel モデル
class AssignHostel < ActiveRecord::Base
belongs_to :user
belongs_to :hostel
attr_accessible :user_id, :room_id
validate :user_id, :uniqueness => true
end
私のホステルのページで、ホステルのリストを作成した後。ポーターの役割を持つすべてのユーザーをリストする新しい割り当てページを開くホステルの割り当てボタンを作成しました
<%= link_to 'Assign', accommodation_new_assign_hostel_path(:id => hostel.id) %>
コントローラーの新しい割り当て
def new_assign_hostel
@search = Search.new(:user, params[:search], :per_page => 2)
@search.order = 'email'
@users = @search.run
@hostel = Hostel.find(params[:id])
@porters = Role.find_by_name('porter').users
@assign_hostel = AssignHostel.new(:hostel_id => params[:hostel_id])
respond_to do |format|
format.js
end
end
私の新しい割り当てページで、これを作成しました
<% @porters.each do |porter| %>
<%= porter.email %>
<%= render 'assign_hostel_form' %>
<% end %>
以下の assign_hostel_form パーシャル
<%= form_for @assign_hostel, url: accommodation_create_assign_hostel_path(:hostel_id => @hostel.id) do |f| %>
<%= f.hidden_field :hostel_id, value: @assign_hostel.hostel_id %>
<%= f.hidden_field :user_id, value: @assign_hostel.user_id %>
<%= f.submit "Assign" %>
<% end %>
しかし、割り当てボタンをクリックした後、ホステルまたはユーザーIDを選択していないようです。どうすればこれを解決できますか。