我在做什么:是否可以将自定义路径追加到Rails路由的“新”路径?
我正在建立一个系统,其中有不同类型的帖子。撇开车型,这个问题是关于路线和控制器
基本上/posts/new
应该去各种各样的索引页,而/posts/new/anything
要查找的类型anything
再建一个表单创建一个新的。
如何我试图做到这一点:
随意忽略这一部分,因为我可以在错误的轨道上完全。
在路由配置:
map.connect '/posts/new', :controller => 'posts', :action => 'new_index'
map.resources :posts, :path_names => { :new => 'new/:type' }
在控制器:
class PostsController
# implicit: def new_index ; end
def new
@post = class_for_type(params[:type]).new
end
end
视图有代码看起来在@post来确定哪组的观点使用的类型。事实证明,这使我获得了90%的途径:/posts/new/quip
实际上确实将我发送到正确的页面以创建一个提示,等等。 /posts/new
确实将我发送到索引页面。
问题是双重的。
我还是希望有便捷的方法是这样的:
<%= link_to 'New Post', new_post_path %>
但这现在是无效的
new_post_path
需要:type
参数。我想尽可能使用一条路线。
这是更好地说,而不是“路径”路线' – khelll 2009-10-02 11:30:31
不,路线则是另一个概念链接到控制器,动作,而params的路径。 – Trejkaz 2009-10-03 08:55:25