質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

143閲覧

User,Articleというmodel,controllerが存在し関連づけられていて、自分が投稿したArticle一覧を別途表示させる場合、そのアクションはどこに書くべきなのでしょうか。

fujitaro

総合スコア8

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/06/06 11:40

編集2021/06/06 11:44

タイトルが分かりにくくて申し訳ありません。

複数のUserがArticleを投稿するようなアプリケーションが存在するとします。
この時ArticlesControllerのindexアクションには自分を含めた全てのUserが投稿したArticleを表示させているとします。
それとは別に自分が投稿したArticleのみを一覧表示したい場合はどこに記述するのがベストなのでしょうか?
自分で思いついたものとしては

1. ArticlesControllerにmy_indexアクションを記述し、viewについても別途用意する。

(railsお決まりの7つ以外のアクションを気軽に追加していいのか?という疑問。create前のconfirmアクションは記述しているのですが,my_indexなんて追加していいのか?と思ってしまいました。)

2. MyArticlesController等を作成し、自分が投稿した記事のみ表示するようindexアクション,そのviewを記述する。

(おそらくindexアクション以外は記述しないと思われます。なのにそのためにControllerをわざわざ作っていいのか?という疑問)

3. ArticlesControllerのindexアクション内に検索機能を実装し、全ての人あるいは自分が投稿したものをフィルターにかけられるようにする。

(自分が実装できる範囲ではindexにフォームオブジェクトを用い、サーチフォームを作って実装するという選択肢があります。)

4. その他

(一番スマートな方法を教えていただければ嬉しいです)

実務自体にはついておりませんので、開発現場などではどのような選択をとるのかがさっぱりわかりません。
どのような方法がいいのか教えていただけると嬉しいです。また、これは禁忌だ!という選択肢もあるならば教えていただけると嬉しいです。
よろしくお願いいたします。

ちなみに、全記事一覧、というページとは別に"自分が投稿した記事一覧"というリンクを踏むと、自分が投稿した記事が一覧が出てくる、というようなページ遷移を想定しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「railsお決まりの7つ以外のアクションを使うな」という方も居るのは事実。
私でしたら、
indexが呼ばれたときに params[:user_id] があればそのuserについて、なければ全userの、
と書きます

投稿2021/06/06 11:57

winterboum

総合スコア23401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fujitaro

2021/06/07 00:58

回答ありがとうございます。やはり7つ以外はダメ、という方もいらっしゃるのですね。 私もその案が一番スマートに感じます。ありがとうございました!
winterboum

2021/06/07 01:48

はい、オリジナルに当たっていないので伝聞ですが、Railsの作者がそうおっしゃっているとか
winterboum

2021/06/07 01:49

あ、 current_userかどうかのチェックは必要かも、ですよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問