[英]Rails route error: NoMethodError
我是Rails的新手,正在嘗試創建一個頁面,該頁面基本上是我的users#show頁面的副本,內容和格式略有不同。 理想情況下,這會像下面這樣工作:
普通路由: http : //myUrl.com/users/2新路由: http : //myUrl.com/users/2/lightbox <-這是具有格式的新路由。 它應該有權訪問用戶#2的信息。
我對堆棧溢出進行了一些研究,並將以下內容添加到routes.rb
resources :users do
member do
get 'lightbox'
end
end
然后傾斜路線。 這使我可以輸入url http://myUrl.com/users/2/lightbox 。 但是,它似乎無權訪問任何用戶類的資源,並且似乎不知道用戶#2是誰。
我可能完全采用了錯誤的方式-我真正想做的就是創建一個自定義頁面,以顯示與顯示頁面不同的單個用戶的信息。 我真的很感謝您的幫助!
您需要向您的app/controllers/users_controller.rb
添加一個操作:
def lightbox
@user = User.find(params[:id]
# any other logic, look at your show method
end
僅路由將URL映射到控制器動作。 設置變量和渲染視圖完全取決於控制器的動作。
在使用過濾器和輔助方法之前,請確保您不必多次編寫代碼。 例如:
before_filter :find_user, only: [ :show, :lightbox ]
def show
end
def lightbox
end
protected
def find_user
@user = User.find(params.fetch :id)
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.