3 番目のモデル user_role を持つ User と Role の 2 つのモデルがあります。作成中にユーザーにいくつかの役割を割り当てたい。ユーザーは多くの役割を持つことができ、役割は多くのユーザーに割り当てることができます。ロール テーブルにマネージャーや管理者などのロールを作成しました。ユーザーを作成するときと同様に、これらの保存されたレコードをユーザー ページのドロップダウン リストに表示する必要があります。ユーザーとロールモデルの間には多対多の関連があります。
私がやったこと:ロールテーブルにmanager、hr、amdinなどのロール名としてデータを保存しました。
疑念:ユーザーの作成中にこれらの保存されたレコードをユーザーページのドロップダウンリストに表示し、ユーザーレコードで保存したいと考えています。ドロップダウン リストのユーザー ページで Roles テーブル データを取得し、それを Role テーブルに保存する方法がわかりません。
user.rb
class User < ActiveRecord::Base
has_many :roles, :through => :role_users
has_many :roles_users
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :username, :email, :password, :password_confirmation,
:remember_me, :first_name, :last_name, :is_admin, :contact_no, :birth_date,
:joining_date, :is_active, :is_hr, :is_manager, :user_code, :designation
# attr_accessible :title, :body
end
role.rb
class Role < ActiveRecord::Base
attr_accessible :name
has_many :users, :through => :role_users
has_many :role_users
end
role_user.rb
class RolesUser < ActiveRecord::Base
attr_accessible :role_id, :user_id
belongs_to :user
belongs_to :role
end
roles_controller.rb
class RolesController < ApplicationController
before_filter :authorize_admin!
def index
@roles = Role.all
end
def new
@role = Role.new
end
def create
@role = Role.new(params[:role])
if @role.save
flash[:success] = "role created!"
redirect_to role_path(@role)
else
render 'new'
end
end
def show
@role = Role.find(params[:id])
end
def edit
@role = Role.find(params[:id])
end
def update
@role = Role.find(params[:id])
if @role.update_attributes(params[:role])
flash.notice = "Role #{@role.name} has been updated"
redirect_to role_path(@role)
else
render 'edit'
end
end
def destroy
@role = Role.find(params[:id])
@role.destroy
redirect_to action: 'index'
end
end
基本的に、Roles テーブルからデータを取得して、Users テーブルのドロップダウン リストに入れ、ユーザーの作成中に保存したいと考えています。誰でも私を助けることができますか?貼り付けるコードがさらに必要な場合は、お知らせください。