У меня есть таблица пользователя и группы. В таблице пользователя у меня есть id, name. В таблице групп у меня есть id group_name, created_by, user_id. Здесь пользователь может принадлежать более чем к одной группе, но не к той же группе дважды. Группа может иметь много пользователей, но не одного и того же пользователя дважды.Вставка данных в столбец внешнего ключа
Вот мой код.
group.rb
module Client
class Group < ActiveRecord::Base
has_many :users
end
end
user.rb
class User < ActiveRecord::Base
belongs_to :client_groups
end
Теперь, когда пользователь создает новую группу, он должен автоматически сохраняться в user_id и CREATED_BY поле. Так согласно guides, я пытался следовать той же с моим кодом, как этот
@user.Client::Group.new(client_group_params)
, но он дал мне ERR.
Так что я попробовал другой путь,
def create
@client_group = Client::Group.new(client_group_params)
client_group_params[:created_by] = current_user.id
client_group_params[:users_id] = current_user.id
@client_group.save
respond_with(@client_group)
end
def client_group_params
params.require(:client_group).permit(:group_name)
end
Он спас GROUP_NAME в БД, но это не спасло CREATED_BY и users_id поле. Есть идеи?
Я сделал поле user_id внешнего ключа.
Написать как 'BELONGS_TO: client_groups, class_name:«Client :: Group'' и '@ user.build_client_groups (client_group_params)' –
@ArupRakshit, я получил этот err' undefined метод «Клиент» для nil: NilClass'. Вот изменения, которые я сделал определение функции создания @client_group = @ user.Client :: Group.new (client_group_params) # client_group_params [: CREATED_BY] = current_user.id # client_group_params [: users_id] = current_user.id @ client_group.save reply_with (@client_group) end' –
снова прочитайте мой комментарий. И вы делаете много неправильных вещей, внутри действия 'create'. –