我仍然相当擅长使用rails,但我一直试图通过在周末建立一些简单的项目来解决这个问题,比如博客,论坛和克隆。
我正在处理的其中一个博客是一个包含用户(设计),帖子和评论的典型博客。我一直在关注这个教程。
我真正感到困惑的是设置评论并进行渲染。
本教程教会我在名为_comment.html.erb的评论视图中进行部分评论,然后在表单_form.html.erb中另作评论。我完全明白,要打电话给表格我只是做渲染&评论/形式'但是对于comment.html.erb,我需要渲染@ post.comments它是怎么回事?#评论/评论'?为什么评论S?
我已经尝试过阅读有关轨道上的渲染和多样化,但大多数人只是谈论模型。
答案 0 :(得分:0)
这里有两个关于配置事项的约定,这可能会让你感到困惑但是为了节省时间。
如果Rails遵循命名约定,则会自动找到正确的部分,这意味着如果您的模型Comment
表示视图部分位于app/views/comments/_comment.html.erb
中。这意味着您在调用render
时不必指定部分的位置,而是可以直接传递模型对象,而Rails会指出您希望它渲染部分并在其上找到它自己的。
这里comments
复数的原因是您将所有comments
渲染为一个集合,而不仅仅是一个comment
。它是一个方便的功能,允许开发人员简单地告诉Rails渲染一个集合,它将自动知道使用相应的部分。这与输入相同:
@post.comments.each do |comment|
render 'comments/comment`, object: comment
end
注意上面的代码是如何直接在模型对象上调用render
所以我们不必费心去指定部分的位置(再次假设你在命名和定位事物时遵循惯例) 。如果我们将其他部分命名为其他内容,那么我们必须像其他示例一样指定位置。