私はユーザーページshow
を作成しようとしていますが、それはDeviseでこれを行う方法について混乱しています。 Deviseにはどんな種類の定義も付属しているようには見えません - Deviseが1つを作るために実装しているコントローラにアクセスする方法はありますか、それを上書きする必要はありますか?Deviseを使用した `Users`ショーページの作成
答えて
あなたはapplication_controller
から継承users_controller
を生成し、そこにカスタムshow
メソッドを定義する必要があります。ビューとルートを作成することを忘れないでください。 例:
#users_controller.rb
def show
@user = User.find(params[:id])
end
#in your view
<%= @user.name %>
#routes.rb
match 'users/:id' => 'users#show', via: :get
# or
get 'users/:id' => 'users#show'
# or
resources :users, only: [:show]
deviseで使用するビューを生成することができます。このビューは、必要に応じて変更できます。
rails g devise:views
ですが、まだユーザー向けの表示ページはありません。新しいページと編集ページのみ。 –
悪い答えは、最初に質問を読んで、それは – SsouLlesS
の前にdevyと動作していないようです 'rails g devise:views'は新しいと編集のためのビューを生成します。ショーページはありません。コードを試してルートを表示すると、ショーはありません。 –
ユーザーのルートは、このように、devise_forユーザーのルート以下でなければならないということを忘れないでください:
#routes.rb
devise_for :users
resources :users, :only => [:show]
また、プライマリとしてユーザ名または電子メールを使用している場合代わりに、通常のIDのキー、あなたは次のようにあなたのルートを宣言することによって、ルーティング競合を避ける必要があります::工夫とCURRENT_USER/other_userプロファイルを示す
#routes.rb
devise_for :users, :path_prefix => 'd'
resources :users, :only => [:show]
After installing devise
ユーザーコントローラを作成します。
rails generate controller Users
次にshowアクションを作成してのparams IDを持つユーザーを見つける:
def show
@user = User.find(params[:id])
end
のユーザーでshow.html.erbファイルを作成します。ビューフォルダ:
<%= @user.email %>
ユーザへのリンクショーのページ:
def index @users = User.all end
は、[ユーザービュー]フォルダ内index.html.erbを作成します:
を今、あなたは他のプロファイルは、ユーザーのコントローラ内のindexアクションを作成表示する場合<%= link_to "current_user_show", current_user %>
このため
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
のリンクは次のようになります。
<%= link_to "show_index_of_users", users_path %>
これは、あなたは、あなたがユーザーのプロファイルへのループとのリンクが作成されますが、ユーザーindex.html.erbファイルにリンクします。
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
これは動作するはずです!
設定/ルートは不要ですか? –
- 1. Devise Invitable display invited users
- 2. Deviseを使用してプライベートプロファイルを作成する
- 3. deviseを使用したCurrent_userメソッド
- 4. Devise - パスワードを忘れました - ルートが[GET] "/ users/password"と一致しません
- 5. Deviseを使用した登録のリダイレクトは失敗します
- 6. deviseを使用したレールのカスタムユーザページ - Rails 4とRuby-2.2の使用
- 7. Rails/Devise:/ users/editのコントローラを変更する方法は?
- 8. Ruby on rails - Devise - ユーザが作成したコンテンツのみを表示
- 9. Multi-tenant Rails 5 Appを使用したDevise OmniAuth
- 10. deviseとPostmanを使用してユーザーを作成できません
- 11. rake db:seed for Rails 3.0を使用してDeviseアカウントを作成できません
- 12. APIを使用したDeviseのユーザ登録
- 13. 異なるコントローラのアクションのための同じルート(POST/users)のレール[Devise]
- 14. Rails - AuthLogicまたはDeviseでFacebookを使用したシングルサインオン認証?
- 15. Angles 2アプリを使用したRails APIのためのDevise Setup?
- 16. 反応ルータを使用して151の異なるプロファイルのためのユニークなショーページを作成してください
- 17. Deviseを使用して認証されたルートを構成する方法は?
- 18. deviseユーザー用のプロファイルを作成する方法は?
- 19. セッション管理にdeviseを使用する
- 20. Deviseを使用したSSLなしのRails認証
- 21. deviseとサブドメイン制約を使用したRailsルーティング
- 22. Devise確認リンクを使用してhttpsを使用する
- 23. APIのRSpecを使用したDevise Signinテスト
- 24. Deviseエクステンションを作成するには?
- 25. JSONからDeviseでユーザーを作成
- 26. deviseでパブリックユーザプロファイルを作成する
- 27. Pythonを使用したスナップショットプロットの作成
- 28. elastalertを使用した%ベースアラートの作成
- 29. ASP.NETを使用したスプライトイメージの作成
- 30. スケーラを使用したRDDの作成
だから、私はそのすべてをやって、 'show'を' index'に '@users = Users.all'に変更しましたが、私はこのエラーを受け取ります:初期化されていない定数UsersController :: Users。 エラーが見つかりました。「@users = @ User.all」 – tcatchy
これを実行すると、特定のユーザープロファイルにリンクし、ログインしなくてもオープン/アクセス可能にするにはどうすればよいですか?ありがとう! – westman2222
上記のコードは、ログインしなくてもユーザーショー(プロファイル)ページにアクセスできるようにします –