#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #ruby-on-rails-5
#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-4 #ruby-on-rails-5
Вопрос:
У меня есть две таблицы Role и User, и я связал эти две таблицы с помощью связи has_and_belongs_to_many с rails.
Я успешно вставляю данные в третью таблицу, которая создается отношением has_and_belongs_to_many. Используя следующий код
def create
user_params[:password] = User.hash(user_params[:password])
@user = User.new(:first_name => user_params[:first_name],
:last_name=>user_params[:last_name],
:email => user_params[:email],
:contact_number=>user_params[:contact_number],
:password=>user_params[:password])
@roles = user_params[:roles];
for role in @roles
@user.roles << Role.find(role)
end
if @user.save
respond_to do |format|
msg = { :status => "ok", :message => "User Creation Success!" }
format.json { render :json => msg }
end
end
end
Теперь моя проблема в том, как мне прочитать значения из таблицы отношений и как мне обновить любое значение в таблице отношений.
Ответ №1:
Предположим, вы настроили роли пользователей вашей модели следующим образом:
class User < ActiveRecord::Base
has_and_belongs_to_many :roles
end
class Role < ActiveRecord::Base
has_and_belongs_to_many :users
end
Abd добавлена users_roles_table
таблица
Затем вы можете извлекать связанные данные, как обычно, говоря
User.first.роли
и
Роль.первая.пользователи