私はユーザーコントローラーを備えたアプリを持っており、次のようにルートのトップレベルパスとして使用したいと考えています。
get ':id' => 'users#show', as: :user_profile
私のto_param
方法User
は次のとおりです。
def to_param
self.username
end
たとえば、「/rodrigo」を押すUser
と、ユーザー名が「rodrigo」のオブジェクトが検索されます。ここまでは順調ですね。
しかし、トップレベルのパスも含めたい静的ページもいくつかあります。たとえば、約、用語、
controller :home do
get 'about', to: :about, as: 'about'
get 'help', to: :help, as: 'help'
get 'terms', to: :terms, as: 'terms'
get 'privacy', to: :privacy, as: 'privacy'
end
これらの静的ページにアクセスしようとすると、次のようになります。
NoMethodError in Users#show
Showing /Users/rodrigovieira/Code/golaco/app/views/users/show.html.erb where line #1 raised:
undefined method `name' for nil:NilClass
また、私のusers#show
ルートは、静的ページがルーティングされる前に定義されていますroutes.rb
。
つまり、Rails は私がユーザー オブジェクトについて話していると認識します。この問題を回避するにはどうすればよいですか?
私はそれが可能だと確信しています。助けていただければ幸いです。