管理动作控制器参数

时间:2014-09-15 15:37:23

标签: ruby-on-rails ruby ruby-on-rails-4

我有这个参数:

 Parameters: {
"diagram"=>{"name"=>"name123"}, 
"isit"=>{
"0"=>{"xposition"=>"171", "yposition"=>"451", "titleid"=>"isit0", "description"=>"-description-", "leftrelationsids"=>"", "rightrelationsids"=>""}, 
"1"=>{"xposition"=>"254", "yposition"=>"554", "titleid"=>"isit1", "description"=>"-description-", "leftrelationsids"=>"", "rightrelationsids"=>""}}}

在接收上述参数的create方法中,我想存储一个图表(现在它只是它的名称),之后我想存储每个组件。

我在diagrams_controller.rb创建方法中执行此操作。该图有has_many组件。

我的问题是如何存储组件数据?

我试过这个(现在只是尝试过列,xposition和yposition):

def create
  @diagram = Diagram.new(diagram_params)
  @diagram.save

  @diagram.components.create(params.require(:isit).permit(:xposition, :yposition))

存储图表,但不存储组件。我不知道如何处理这个需要permite的东西到组件。

结果如下:

enter image description here

有任何帮助吗?我该如何存储组件?

1 个答案:

答案 0 :(得分:1)

尝试使用此代码:

@diagram = Diagram.new(diagram_params)
@diagram.save
component = Component.create(params.require(:isit).permit(:xposition, :yposition))
@diagram.components << component
@diagram.save

或者在图表模型中使用accepts_nested_attributes_for,然后修改diagram_params方法以添加以下内容:

params.require(:diagram).permit(components_attributes: [:xposition, :yposition])

了解accepts_nested_attributes_for