这两种不同的方式是在强参数中编写嵌套属性吗?

Are these 2 different ways of writing nested attributes in strong params?

我正在使用嵌套属性和强参数,我已经看到在强参数中嵌套属性的两种不同方式。

举个例子:

class Post < ActiveRecord::Base
has_many :comments
accepts_nested_attributes, :comments

class Comments < ActiveRecord::Base
belongs_to :post

我在Post控制器中看到过这两种注释嵌套方式,有区别吗?

params.require(:post)
      .permit(:title, :id, :author, :comment => [:id, :content, :post_id, :user_id])

params.require(:post)
      .permit(:title, :id, :author, comments_attributes: [:id, :content, :post_id, :user_id])


它们看起来很相似……通常我会认为那个是早期版本,但我相信强参数相对较新。有什么区别?

Ruby

中只有两种不同的哈希语法
params.require(:post).permit(:title, :id, :author, :comments_attributes => [:id, :content, :post_id, :user_id])

params.require(:post).permit(:title, :id, :author, comments_attributes: [:id, :content, :post_id, :user_id])

相同

当您添加 accepts_nested_attributes_for :comments 时,它会创建一个 comments_attributes 方法。 comments 方法需要一个数组,不确定如果你向它发送一个 comments 参数它会做什么,也许什么都不会。 link 到另一个 'nested params' 示例与 accepts_nested_attributes 不同。