Когда я создаю новую группу в своем приложении, я хочу, чтобы зарегистрированный пользователь (Devise) был связан с автоматически. В дальнейшем пользователи могут быть добавлены в группу. Один пользователь может иметь много групп. У одной группы может быть много пользователей.имеет и принадлежит многим рельсам 4
Как связать зарегистрированного пользователя при создании?
Мой group.rb:
class Group < ActiveRecord::Base
has_and_belongs_to_many :users
has_and_belongs_to_many :clients
end
groups_controller.rb (создать)
def create
@group = Group.new(group_params)
@group.users.id = current_user.id
respond_to do |format|
if @group.save
format.html { redirect_to @group, notice: 'Group was successfully created.' }
format.json { render action: 'show', status: :created, location: @group }
else
format.html { render action: 'new' }
format.json { render json: @group.errors, status: :unprocessable_entity }
end
end
end
И group_params от groups_controller.rb
def group_params
params.require(:group).permit(:name, { :user_ids => [] },)
end
Мой schema.rb содержит:
create_table "groups", force: true do |t|
t.string "name"
t.string "background"
t.integer "clocktype"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "groups_users", id: false, force: true do |t|
t.integer "group_id"
t.integer "user_id"
end
add_index "groups_users", ["group_id"], name: "index_groups_users_on_group_id"
add_index "groups_users", ["user_id"], name: "index_groups_users_on_user_id"
create_table "users", force: true do |t|
t.string "first_name"
t.string "last_name"
t.string "email"
t.string "password"
t.string "avatar"
t.datetime "created_at"
t.datetime "updated_at"
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
end
Как шарм. Благодаря! – CaptainCarl