0

定義されたルートのメーラービューでurl_forを使用しようとしています:

<%= url_for(
    :controller => 'scribe_requests', 
    :action => 'accept', 
    :id => @match.acceptance_token, 
    :only_path => false) %>

私は自分のroutes.rbでルートを定義しました:

resources :scribe_requests do
  member do
    match 'accept' => 'scribe_requests#accept', :as => :accept
  end
end

そして私のコントローラー:

class ScribeRequestsController < ApplicationController
  respond_to :html

  def accept
    ..
  end
  ..
end

ここで何が問題になっているのかわかりませんか?私の遅れた仕事は例外を除いて失敗しています

"{ルートが一致しません{:controller =>" scribe_requests "、:action =>" accept "、:id =>" nv4Nl8wWXLX2zFDm3s3t7w "} /home/syed/.rvm/gems/ruby-1.9.2-p0/gems/ actionpack-3.2.5 / lib / action_dispatch / routing / route_set.rb:532:inrescue raise_routing_error' /home/syed/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.2.5/lib/action_dispatch/routing/route_set.rb:528:in in generate' /home/syed/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.2.5/lib /action_dispatch/routing/route_set.rb:520:in generate' /home/syed/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.2.5/lib/action_dispatch/routing/route_set.rb:561:in generate'/home/syed/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.2.5/lib/action_dispatch/routing/route_set.rb: 586:in url_for' /home/syed/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.2.5/lib/action_dispatch/routing/url_for.rb:148:in url_for' url_for' /home/syed/work/projects/mapunity/retina-india/app/views/notifier/scribe_service_needed_email.html.erb:47:in /home/syed/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.2.5/lib/action_view/helpers/url_helper.rb :107:in _app_views_notifier_scribe_service_needed_email_html_erb ___ 981003510_106966530' / home /.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.2.5/lib/action_view/template.rb:145:「レンダリングのブロック」で

4

1 に答える 1

0

:viaルート定義にオプションを追加する必要があり、それは機能しました。奇妙なことに、私はそれを何の影響もなく行っていました。キャッシュの問題である可能性があります。したがって、変更後、私のルート定義は次のようになりました。

resources :scribe_requests do
  member do
    match 'accept' => 'scribe_requests#accept', :via => :get, :as => :accept
  end
end

テスト走行:

ruby-1.9.2-p0 > app.url_for :controller => 'scribe_requests', :action => 'accept', :id => 'test'
 => "http://www.example.com/scribe_requests/test/accept" 

助けてくれてありがとう。

于 2012-07-25T16:49:12.777 に答える