私はDevise gemと協力しており、ユーザーのためにshow
ページを作成しました。私の考えはwww.website.com/:id
のような単純なパスを作ることだったと下図のように、私はそれを構成し:Ruby on Railsでの経路競合
devise_for :users, path: '', path_names: {sing_in: "login", sing_out:
"signout", sing_up: "signup", edit: "edit"},
:controllers => {:registrations => :registrations }
resources :users, only: [:show]
get '/:id' => 'users#show', as: :profile
私のルートは正常に動作しますがshow
ページ以外にも、私は、例えばstatic controller
下のページabout
ページを持っています。私はwww.website.com/about
のようにアクセスできるようにしたい、ここで私は私のstatic routes
を定義する方法である:私はabout page
にリダイレクトしようとしていた場合
get '/about', to: 'static#about'
今、私はエラーを取得しています:
ActiveRecord::RecordNotFound in UsersController#show
Couldn't find User with 'id'=about
ここに私のusers_controller.rb
です:
class UsersController < ApplicationController
def show
@user = User.find_by_id(params[:id])
@services = @user.services
end
...
end
私は、同様のエラーを検索しようとしましたが、このようなものを発見していません。誰かが私が間違っていることを教えてもらえますか?
ご協力いただきありがとうございます。ここ
あなたのルート ' 'について/' を取得、に:として、ID '=> 'ユーザーの#ショー':/「静的#1 about''は'得る前に定義する必要があります' ::profile' route – lightalloy
静的なページ呼び出しでユーザーの電話と文字の数字が来ると想定すると、制約を使うことができます:http://guides.rubyonrails.org/routing.html#specifying-constraints –
@lightalloyこれは私の最初の考えでした著者が書いたように、実際には静的ページコントローラを呼び出すため、動作しません。 –