Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 通过has\u one/behold\u将模型id另存为外键_Mysql_Ruby On Rails_Ruby_Associations - Fatal编程技术网

Mysql 通过has\u one/behold\u将模型id另存为外键

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

我将简要地解释我的情况:我有一个名为“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 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)
在模型中?我不知道为什么您在模型中使用此方法,而您可以在用户的“新”方法中使用它,然后在相同的用户“新”方法中使用“用户.构建税”