我有一個看起來像一個自定義路由工作:url_for不與自定義路由
match 'firsttime' => 'registrations#new', :via => :get, \
:defaults => {:promotion_path => :firsttime}
上述路線的目標是能有像http://www.mysite.com/firsttime一個URL映射到「新」的方法對於註冊管理員而言,該註冊的促銷是「首次」促銷。
在我的車型之一,我有一個快捷的方法來嘗試並生成該網址:
class Registration < ActiveRecord::Base
include ActionView::Helpers
include ActionDispatch::Routing
include Rails.application.routes.url_helpers
belongs_to :promotion
def get_share_link()
promotion_path = promotion.url_path
url_to_share = url_for :controller => 'registrations', :action => 'new', :promotion_path => promotion_path
end
end
調用方法get_share_links()失敗,出現錯誤:
No route matches {:controller=>"registrations", :action=>"new", :promotion_path=>"firsttime"}
我是什麼做錯了,還是我甚至使用正確的方法呢?
如果我將該代碼移動到控制器,則會發生同樣的事情。 –
沒有認證 –
沒有,得到沒有路由匹配[GET]「/ registrations/new」 - 我沒有爲此使用基於資源的路由。 –