我花了一些时间在Rails上工作,但是我有一个问题,不知道如何解决。
有一个模型X和一个模型YW,它们之间是一个联合模型
我需要从视图传递到控制器作为x_yw_attributes X的参数的一部分,但我不知道如何在html中稳定属性名称的正确方式。
想法将是这样:
"x" => {
"name"=>"Name 1", "description"=>"Descripción 1", "status"=>"true",
"x_yw_attributes" =>[
{"yw_id"=>"15", "range"=>"[1,2,3,5]", "payment" => "[2,3,4,5,6,7]"},
{"yw_id"=>"17", "range"=>"[1000,2000,3000,5000]", "payment" => "[20,30,40,50,60,70]"},
{"yw_id"=>"19", "range"=>"[10000,20000,30000,50000]", "payment" => "[200,300,400,500,600,700]"}
],
"categories_ids"=>["", "2", "", "5", "5"]
}
例如,我知道如何使用类别:
<input type="checkbox" name="x[category_ids][]" value="2" checked="checked">
<label for="category_2">Category 2</label>
所以,让我知道我应该如何写name属性,否则我需要更多信息。谢谢帮助。
您可以更详细地检查文档accepts_nested_attributes_for根据您的问题,我无法确定您要将信息存储在YW还是联合表中?如果要在YW中存储数据,可以先设置accepts_nested_attributes_for :yw
,然后将yw_attributes
传递给控制器。强大的参数类似于:
def x_params
params.requires(:x).permit(:name, :description, :status, yw_attributes: [:id, :range, :payment, :_destroy])
end
您编写的代码看起来像是将信息存储在join_table中。如果您要这样做,请在x_yw_attributes中添加:id,以指示您要更新而不是创建它们。
您还可以检查Ryan B.的nested_form gem,他结合了一些JavaScript代码以简化生活