在我的控制器中,我想对新的和编辑请求使用相同的代码。像这样:
def edit
@tag= Tag.find(params[:id]) || Tag.new
end
我的问题是:我如何在routes.rb(Rails3)中指出这个?
答案 0 :(得分:1)
假设您正在使用资源路由,就像这样:
# routes.rb
resources :tags
这将创造新的并为您创造。
假设您只想要编辑新地图,但保持创建不变,请使用以下内容:
get "/tags/new" => "tags#edit", :as => :new_tag_path
resources :tags
订单很重要。上面的一个将首先匹配。因此,如果路径为/tags/new
,则会将其路由到编辑操作。并且因为它已经匹配,所以它不会下降,所以虽然resources :tags
也定义了/tags/new
到新操作,但是没有成功匹配路由。
所以只添加一行即可。