我已經通過Rails指南和其他文檔來更好地理解路由,但我無法理解以下原因。導軌路由錯誤 - 沒有路由匹配
Routing Error
No route matches {:action=>"preferences", :controller=>"users"}
我已經添加了以下額外的方法(它們是尚未完成),以我的users_controller:
def preferences
@user = User.find(params[:id])
end
def update_pref
@user = User.find(params[:id])
if @user.save
redirect_to edit_user_registration_path, :notice => 'Updated Preferences.'
else
flash.alert = 'Unable to update preferences.'
render :edit
end
end
我的routes.rb包含,
resources :users do
member do
get 'preferences'
put 'update_pref'
end
末
當我運行耙:路線,我得到,
preferences_user GET /users/:id/preferences(.:format) users#preferences
update_pref_user PUT /users/:id/update_pref(.:format) users#update_pref
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
任何和所有的建議非常感謝。謝謝你的時間。
這可能期待一個id爲好。如果你使用命名的路由,例如'link_to preferences_user_path(@user)',怎麼辦?那樣有用嗎?你可以添加link_to的代碼,或者你正在生成的網址? –
您能否提供有關此錯誤發生位置的更多詳細信息?它是一種形式還是一個鏈接或別的東西? –
您可以分享您從哪裏調用此路徑的視圖並獲取錯誤。 –