LoginSignup
1
1

More than 3 years have passed since last update.

resourcesメソッド以外のアクションを行いたい場合

Last updated at Posted at 2020-08-17

【概要】

1.結論
2.collection,memberメソッドとは何か
3.どのように使うか
4.なぜcollection,memberメソッドが必要か
5.ここから学んだこと

1.結論

member,collectionメソッドを使う!

2.collection,memberメソッドとは何か

簡単に言いますと、
member:resourcesメソッド以外のアクション(特定のデータあり)
collection:resourcesメソッド以外のアクション(特定のデータなし)

特定のデータとは”:id”のことを指し、
“member”はAというUserに紐づいているものしか
見れない(=特定の人が特定の情報しかみれない)アクションをしたい場合に使用できます!例えばお気に入り登録を見たい場合です。
“collection”は、全てのデータを対象とします。例えば検索機能を追加したい場合です。

3.どのように使うか

member,collectionも使い方は同じで、

routes.rb
collection do
 get *****(入れたい任意のアクション名)’

で使用できます!

もちろんmember,collectionを使用せずその他のアクションを設定す流方法があります。

memberメソッドですと

routes.rb
 get users/:id/(任意のアクション名), to users#(任意のアクション名)’

colletionメソッドですと

routes.rb
 get users/(任意のアクション名), to users#(任意のアクション名)’

になります。

ただ注意点としてはprefixが自動生成されないので
冗長な表現になりかねないです。簡単にかけるものは簡潔にプログラムしないと、保守性・拡張性・可読性が損なわれます!

4.なぜcollection,memberメソッドが必要か

結論としては、resourcesメソッド以外のアクションを行いたいからです。
つまり、member,collectionメソッドを使う!ということです。


5.ここから学んだこと

I)7つのアクション以外に設定できるアクションがあることをしり、ユーザーがが求めるユーティリティーへの対応幅が広がりました!

ii)わざわざURLを指定してアクションを設定しないといけない手間が省け
プログラムを見やすく書きやすくできる手段を知りました!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1