我在做什麼:是否可以將自定義路徑追加到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