2009-10-30 185 views
0

我有有一個方法控制器稱爲歷史路由URL和路徑在軌

class UsersController < ApplicationController 

    def history 
    User.return_history(params[:id]) 
    end 

end 

我已經在我的routes.rb文件下列

map.resources :users, :shallow => true do |user| 
    user.resources :friends, :shallow => false 
    user.resources :posts, :collection=>{:no_access => :get} 
    user.resources :photos 
end 

如何嘗試Ajax調用users_controller.rb的歷史方法?以下列方式

link_to_remote 'History', :url=>history_user_path(@user), :update=>"history", :method=>'get' 

使用link_to_remote扔下我一個錯誤說history_user_path()沒有找到。怎麼會這樣? edit_user_path()顯示沒有錯誤,編輯甚至未在User.rb文件中明確定義。謝謝。

回答

2

mapresources:用戶創建一堆url /路徑助手方法,包括edit_users_path。如果你需要別人。您必須將其添加爲map.resources的:member或collection選項。

這將讓你做你想做的:

map.resources :users, :shallow => true, :member => {:history => :get} do |user| 
    user.resources :friends, :shallow => false 
    user.resources :posts, :collection=>{:no_access => :get} 
    user.resources :photos 
end