[英]Rails can't find my route but it exists!
好的,我有一些事件,我想通過其他操作來發布/取消發布(非RESTful),我在此觀看了瑞安·貝茨的railscast: http ://railscasts.com/episodes/35-custom-rest-actions,它吸引了我大部分方式。 我認為問題是我的路線嵌套在/admin
節中,因此即使我運行rake routes
並獲得:
publish_admin_event PUT /admin/events/:id/publish(.:format) {:controller=>"event_services", :action=>"publish"}
這在我的/views/admin/index.html.erb文件中不起作用:
<%= link_to 'Publish', publish_admin_event(event), :method => :put %>
因為它聲稱該路徑不存在! 而且這也不會:
<%= link_to 'Publish', {:controller => :event_services, :action => :publish}, {:method => :put, :id => event} %>
並說“ No route matches {:controller=>"event_services", :action=>"publish"}
“
那有什么呢? (並且我嘗試過重啟服務器,不是嗎。)
編輯:這確實起作用:
<%= link_to 'Publish', "/admin/events/" + event.id.to_s + "/publish", :method => :put %>
但是我寧願不這樣做。
編輯#2:我的路線條目:
map.resource :admin do |admin|
admin.admin '', :controller => :admin, :only => :index
admin.resources :events, :controller => :event_services, :member => {:publish => :put } do |service_event|
# ...
end
end
這在我的/views/admin/index.html.erb文件中不起作用:
<%= link_to 'Publish', publish_admin_event(event), :method => :put %>
因為它聲稱該路徑不存在!
我希望它由於NoMethodError而無法正常工作。 我認為您的意思是在publish_admin_event_path
編寫publish_admin_event_path
而不是publish_admin_event
。 然后它應該工作。
而且這也不會:
<%= link_to 'Publish', {:controller => :event_services, :action => :publish}, {:method => :put, :id => event} %>
如果您執行:controller => "/admin/event_services"
(如果您已經在admin名稱空間中,則沒有必要),這將起作用,並且正如您在注釋中所指出的,將:id => event
移動到第一個哈希。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.