2015-03-02 32 views
0

我對rails還是比較新的,但我一直試圖通過在週末構建一些簡單的項目,如博客,論壇,克隆等來解決這個問題。困惑於渲染如何在rails中工作

我正在處理的博客之一是一個典型的博客,其中包含用戶(設計),帖子和評論。我一直在關注這個教程。

我一直非常困惑的事情是設置評論和渲染它。

本教程告訴我在名爲_comment.html.erb的評論視圖中進行部分評論,然後在form _form.html.erb中進行評論。我完全理解,要調用表單,我只是渲染'comments/form',但對於comment.html.erb我需要渲染@ post.comments如何來它不是'評論/評論'?爲什麼它對S有意見?

我已經嘗試閱讀了軌道上的渲染和圖像處理,但大多數只是談論模型。

+0

嗯,這是Rails,Convention over配置。我不熟悉Rails源代碼,但這是Rails的工作原理。 – hlcfan 2015-03-02 09:12:07

回答

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,所以我們不必理會再次指定部分(位置,假設你遵循了約定時,命名和定位的東西)。如果我們將其他部分命名爲其他部分,那麼我們必須指定其他例子的位置。

+0

非常有幫助!謝謝!!! – Wilson 2015-03-02 21:20:54