【发布时间】:2014-10-02 17:09:32
【问题描述】:
在 Rails 中,我可以使用路由文件中的 resources 自动为 CRUD 操作创建一组路由。
这会创建index、new、create、edit、show、update 并破坏路由。
我了解这些路由如何工作的一般流程,通常当调用路由时,会根据传递给相应操作的参数创建模型对象,并创建相应的视图或将客户端重定向到另一个指定的操作。
new 和edit 视图都可以使用相同的_form 部分在各自的操作中更新模型对象。但是我很难理解客户端是如何被重定向到另一个动作的。
例如,在new 操作中,客户端被重定向到create 操作,并且在new 中更新的模型对象作为参数传递给create。我不明白这是怎么发生的,因为没有指定重定向,而且我看不到模型对象是如何变成参数的。
def new
@article = Article.new
end
def create
@article = Article.create(article_params)
redirect_to(article_path(@article.id))
end
_form 部分:
<%= form_for(@article) do |f| %>
<ul>
<% @article.errors.full_messages.each do |error| %>
<li><%= error %></li>
<% end %>
</ul>
<p>
<%= f.label( :title ) %><br>
<%= f.text_field( :title ) %>
</p>
<p>
<%= f.label( :body ) %><br>
<%= f.text_area( :body ) %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
【问题讨论】:
标签: ruby-on-rails forms redirect routes