class="p1">跳转一个局部form
让我们同样地把那个新的comment部分移出来,形成自己的局部文件。再次创建一个文件?app/views/comments/_form.html.erb 包含下面代码
?
<%= form_for([@article, @article.comments.build]) do |f| %>
??<p>
????<%= f.label :commenter %><br>
????<%= f.text_field :commenter %>
??</p>
??<p>
????<%= f.label :body %><br>
????<%= f.text_area :body %>
??</p>
??<p>
????<%= f.submit %>
??</p>
<% end %>
然后你编辑文件?app/views/articles/show.html.erb?像下面的代码:?
<p>
??<strong>Title:</strong>
??<%= @article.title %>
</p>
?
<p>
??<strong>Text:</strong>
??<%= @article.text %>
</p>
?
<h2>Comments</h2>
<%= render @article.comments %>
?
<h2>Add a comment:</h2>
<%= render "comments/form" %>
?
<%= link_to 'Edit Article', edit_article_path(@article) %> |
<%= link_to 'Back to Articles', articles_path %>
这第二个跳转仅仅定义了我们想要跳转到的局部模板,comments/form。Rails是相当的智能化,能识别出在字符串中的斜杠,以及意识到你想要跳转到的在文件夹app/views/comments中的那个文件_form.html.erb。
在视图中,@article对象对于任何跳转的局部文件都是可使用的,因为我们定义过它了,把它类似于作为一个实例变量。
?
?
original text:http://guides.rubyonrails.org/getting_started.html#rendering-a-partial-form