更新现有记录之间的关联
Updating an association between existing records
我有一个用户 table 和服务 table:
class User < ActiveRecord::Base
has_many :services, through: :services_users
end
class Service < ActiveRecord::Base
has_many :users, through: :services_users
end
加入table:
create_table "services_users", id: false, force: :cascade do |t|
t.integer "service_id", limit: 4
t.integer "user_id", limit: 4
end
我有一个 select 用户和服务的表单,我想将它们关联起来,
表单 select 是服务,然后是用户
我有以下
user_dispatcher_path(user,service), method: :put
有路线
put "dispatcher" => "userrs#dispatcher", as: :dispatcher
我已经在我的用户控制器中启动了
def dispatcher
?
end
那我卡住了:
我想我可以使用update_all 或者我可以将两个id 直接保存到services_users
我该怎么做?
如果 ServicesUsers 没有 activerecord 模型,试试这个
@user = User.find(params[:user_id])
@user.services << Service.find(params[:service_id])
如果 user/house 不存在,请使用创建。或者更好的是,使用 find_or_create_by
为您的需求建模的替代方法。
http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association - 这正是您所需要的。组件 = 服务,零件 = 用户。
我有一个用户 table 和服务 table:
class User < ActiveRecord::Base
has_many :services, through: :services_users
end
class Service < ActiveRecord::Base
has_many :users, through: :services_users
end
加入table:
create_table "services_users", id: false, force: :cascade do |t|
t.integer "service_id", limit: 4
t.integer "user_id", limit: 4
end
我有一个 select 用户和服务的表单,我想将它们关联起来, 表单 select 是服务,然后是用户
我有以下
user_dispatcher_path(user,service), method: :put
有路线
put "dispatcher" => "userrs#dispatcher", as: :dispatcher
我已经在我的用户控制器中启动了
def dispatcher
?
end
那我卡住了:
我想我可以使用update_all 或者我可以将两个id 直接保存到services_users
我该怎么做?
如果 ServicesUsers 没有 activerecord 模型,试试这个
@user = User.find(params[:user_id])
@user.services << Service.find(params[:service_id])
如果 user/house 不存在,请使用创建。或者更好的是,使用 find_or_create_by
为您的需求建模的替代方法。
http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association - 这正是您所需要的。组件 = 服务,零件 = 用户。