@post = Post.find(params[:post_id])
@comment = @post.comments.create(comments_params)
答案 0 :(得分:0)
答案可能取决于您所关注的任何教程,但是幸运的是,一旦您了解了基础知识,Ruby和Rails就很容易阅读。
@post = Post.find(params[:post_id])
意味着@post
(将保留您帖子的实例变量)应设置为{=
){ {1}}首先将Post
字段与find
字段中的值与传递到此控制器的参数中的值相匹配的条目。
id
意味着应将实例变量post_id
设置为在@comment = @post.comments.create(comments_params)
对象上运行@comment
方法时返回的值的{=
您刚刚创建的。也就是说,代码采用comments.create
对象并在其上运行@post
方法,以便创建的注释将具有与该帖子相同的ID(即,将其链接到数据库中)。注释记录的其他部分(例如注释本身的文本)将从@post
变量中获取,该变量将是您之前在行中使用的comments.create
变量的过滤版本-外观用于名为comments_params
的私有函数,该函数声明params
中的哪些字段可以传递到创建的注释中。 (这是Rails的所谓“强大参数”功能,可让您确保用户不要试图通过代码偷偷摸摸地捣乱应用程序。)
如果您想了解有关参数和对象的更多信息,请查看使用comments_params
或通过调试参数在应用程序中传递的内容(将代码params
放在应用程序布局上以查看每个页面上都有很多有趣的值。