Ruby on rails - url_for不能与自定义路由一起工作



我有一个自定义路由,看起来像:

match 'firsttime' => 'registrations#new', :via => :get, 
    :defaults => {:promotion_path => :firsttime}

上述路由的目标是能够有一个类似http://www.mysite.com/firsttime的url,它映射到注册控制器的"new"方法,该注册的促销是"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()方法失败,报错:

没有路由匹配{:controller=>"registrations",:action=>"new",: promotion_path => "首次"}

我做错了什么,或者我是否使用了正确的方法?

路由在控制器中使用。把它作为before过滤器放在你的控制器中。

<标题>编辑# 1

这个是设计的还是另一个用于认证的宝石?

<标题>编辑# 2 h1> 能到达http://www.mysite.com/registrations/new?promotion=firsttime假设它是本地主机现在当然,因为你是在开发模式。 <标题>问题# 1

你说的"在我的一个模型中,我有一个快捷方法来尝试生成这个url"是什么意思:"你为什么生成这个,它在哪里使用?"邮件吗?看来你的路由是有效的,只是没有在你想要的时候生成,而且不清楚你想要在哪里使用它。

<标题>

它是否与only_path: false作为选项提供?

相关内容

  • 没有找到相关文章

最新更新