【问题标题】:What is the alternative for accepts_nested_attributes_for in the belongs_to model activeadmin resource?在 belongs_to 模型 activeadmin 资源中,accepts_nested_attributes_for 的替代方法是什么?
【发布时间】:2019-05-25 05:16:47
【问题描述】:
我有一个会员资源,它属于用户和俱乐部。我想访问父属性,即俱乐部和用户,我读到accepts_nested_attributes_for 用于关系的父方。我应该在我的会员模式中写些什么?
我在 stackoverflow 和 activeadmin 文档中都搜索过它,但我没有得到关于解决我的问题的彻底解释......
我的会员模式是:
会员资格.rb
class Membership < ApplicationRecord
require 'csv'
belongs_to :club
belongs_to :user
end
另外,我应该在我已经向 AA 注册的会员资源中写什么...
【问题讨论】:
标签:
ruby-on-rails
ruby
activeadmin
【解决方案1】:
您可以提及以下内容:-
1) has_many: 会员#in user model
2) has_many: 会员#in club model
这将帮助您从子模型访问父属性:-
membership.user、membership.club
另外,您可以在用户模型中提及 accepts_nested_attributes_for:memberships。
当您编写此代码时,您可以为用户和成员构建一个通用表单并同时修改它们。为此,您必须在 users_controller.rb 中允许会员属性。
【解决方案2】:
以下应该可以工作(Similar question):
class Club < ApplicationRecord
has_many :memberships, :dependent => :destroy
has_many :users, :through => :memberships
accepts_nested_attributes_for :membership
end
class User < ApplicationRecord
has_many :memberships, :dependent => :destroy
has_many :clubs, :through => :memberships
accepts_nested_attributes_for :membership
end
class Membership < ApplicationRecord
require 'csv'
belongs_to :club
belongs_to :user
accepts_nested_attributes_for :club
end