Mysql 通过has\u one/behold\u将模型id另存为外键
我将简要地解释我的情况:我有一个名为“tax”的模型,它属于一个“用户”,其中一个“用户”拥有一个 在我的users表中,我有一个名为“tax_id”的列,我想在用户创建税务模型时存储该模型的id 目前,在我的税务模型中,create函数如下所示:Mysql 通过has\u one/behold\u将模型id另存为外键,mysql,ruby-on-rails,ruby,associations,Mysql,Ruby On Rails,Ruby,Associations,我将简要地解释我的情况:我有一个名为“tax”的模型,它属于一个“用户”,其中一个“用户”拥有一个 在我的users表中,我有一个名为“tax_id”的列,我想在用户创建税务模型时存储该模型的id 目前,在我的税务模型中,create函数如下所示: class Tax < ActiveRecord:Base belongs_to :user tax = Tax.new(income: income, taxes: taxes, rrsp: rrsp) tax.save def cre
class Tax < ActiveRecord:Base
belongs_to :user
tax = Tax.new(income: income, taxes: taxes, rrsp: rrsp)
tax.save
def create
@tax = Tax.new(secure_params)
@tax.user = User.find(current_user.id)
if @tax.save
redirect_to show_tax_path(current_user.tax)
else
render :new
end
end
(secure_params)是专用定义中设置的字段输入的强参数
现在,有人提到,如果我使用build
,我可能会有更好的运气,但不幸的是,我根本无法让它工作,这与我如何使用current_user
(designe)有关。目前,我的设置工作正常,除了像我说的那样在用户模型列“tax_id”中保存tax模型id之外
我想知道我是否需要为“属于”或“有一个”语句添加一个外部ID键,尽管我的印象是只要列名为“”[model]\u ID”
请尝试使用
user.build_tax
我想这可能对你有帮助
的生成语法有许多关联:
user.taxes.build
user.build_tax # this will work
user.tax.build # this will throw error
的生成语法有一个关联:
user.taxes.build
user.build_tax # this will work
user.tax.build # this will throw error
既然税属于用户,为什么要在用户表中添加属性税id。相反,您应该在taxes中添加user_id属性table@arivarasan我在taxes表中确实有user_id,但是我想要一个双向关系,这样taxe_id也可以保存在users表中,但是不知道构建语法的确切位置?它是在控制器的create方法中的
@tax.user=user.find(current_user.id)
下,还是替换整个方法tax=tax.new(收入:收入,税收:税收,rrsp:rrsp)
在模型中?我不知道为什么您在模型中使用此方法,而您可以在用户的“新”方法中使用它,然后在相同的用户“新”方法中使用“用户.构建税”