我有一个自定义路线,如下所示:
match 'firsttime' => 'registrations#new', :via => :get, \
:defaults => {:promotion_path => :firsttime}
上述路线的目标是能够有一个像http://www.mysite.com/firsttime这样的 url ,它映射到注册控制器的“新”方法,该注册的推广是“第一次”晋升。
在我的一个模型中,我有一个快捷方法来尝试生成这个 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() 失败并出现错误:
没有路线匹配 {:controller=>"registrations", :action=>"new", :promotion_path=>"firsttime"}
我做错了什么,或者我是否为此使用了正确的方法?