通过对象的params

时间:2017-06-13 12:53:32

标签: ruby-on-rails ruby

我正试图通过参数:

private

def purchase_params
  params.require(:purchase).permit(:shop_id, :subscription_id, :created_at)
end

有了这个:

@purchases = current_shop.purchases.build(params[:purchase])
@purchases.save!

我获得了除subscription_id之外的所有参数,它返回nil。 有人知道我在这里可能缺少什么吗?

提前致谢!!

更新1

如果我保留它,因为我最初拥有它<%= current_shop.purchases.inspect %> 给出:购买ID:15,subscription_id:nil,shop_id:14,created_at:“2017-06-13 11:29:43”,updated_at:“2017-06-13 11:29:43”

3 个答案:

答案 0 :(得分:0)

首先需要改变

@purchases = current_shop.purchases.build(params[:purchase])

@purchases = current_shop.purchases.build(purchase_params)

并检查您是否在:subscription_id内获得purchase。像这样的东西:

Parameters: {"purchase"=>{"shop_id"=>"7"}

您可以在rails log

中查看

答案 1 :(得分:0)

请试试这个

@purchases = current_shop.purchases.build(purchase_params)
@purchases.save!

答案 2 :(得分:0)

我认为Ur试图将数据存储为关系。 但是忘记密钥无法存储。 检查您的html.rb文件表单。然后将subscription_id作为隐藏字段传递