簡體   English   中英

Rails路由錯誤:NoMethodError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM