如何在模型中获取嵌套值

时间:2017-03-10 07:28:11

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

我只是对db结构进行了一些更改,并且必须使用嵌套模型

发布模型

has_many :pictures
accepts_nested_attributes_for :pictures, reject_if: :all_blank, allow_destroy: true

图片模型

belongs_to :user
视图中的

(渲染1输入字段)

= f.simple_fields_for :pictures, @post.pictures.build do |e|
    = e.input :picture, input_html: { class: 'form-control' }, label: false

问题是:我怎样才能获得输入值:后期模型中的图片。我尝试了很少的东西,但没有一个能奏效。

提前感谢

1 个答案:

答案 0 :(得分:1)

使用rails 5首先需要做的是在你的控制器中使用带有嵌套属性的强params

def post_params
 params.require(:post).permit(:firstfield, :secondfield, {:pictures_attributes => [:picture, :firstattribute, :secondattribute]})
end

Rails strong params - using fields from has_many object我赞成 David

如果您想访问该值,您可以在

中找到它
post_params[:pictures_attributes][i][:picture]

因为在表单中使用do |e|时会创建一个可能有很多行的嵌套属性。我使用i选择一行。

这是我对这个问题的理解。