LoginSignup
0
0

More than 3 years have passed since last update.

メソッドについての理解を深める

Posted at

疑問点

写真投稿アプリ作成過程において、「ツイート投稿時」と「ログイン認証時」にそれぞれpermitメソッドを使用した。しかし双方のpermitメソッドのコード規則に一貫性を感じない。疑問に感じたので調べてみることにした。

調べた内容

①コードの確認
まずは双方のコードを振り返ってみる。

tweets_controller.rb
【ツイート投稿時】
記述内容:params.require(:tweet).permit(:name, :image, :text)
記述汎用:params.require(:モデル名).permit(:キー名, :キー名)
application_controller.rb
【ログイン認証時】
記述内容:devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
記述汎用:devise_parameter_sanitizer.permit(:アクション名, keys: [:キー名])

やはりpermitメソッドのコード規則が上下で異なっている。
ちなみに「application_controller.rb」ファイルはdevise Gemを用いて生成している。この辺りに解決のヒントがあるのだろうか。

②ウェブ検索
次にdevise Gemについて調べてみた。
どうやらpermitメソッドが追加されたのは、devise4というバージョンからのようだ。

仮説

①rails newにより生成されるruby on railsのGem郡にpermitメソッドの定義がある。
 またdevise:installにより生成されるGemにもpermitメソッドの定義がある。
②上記のpermitメソッドは別物である。
③devise Gemを通じて生成されたファイルはdevise内のpermitメソッドが適応される。

検証結果

①の仮説を検証するべくdevise Gemのコード表を確認すると、permitメソッドに関するコーディングが記載されていた。「application_controller.rb」でのpermitメソッドはdevise Gemのコーディング規則に基づいていることが確認できた。

→同じ名前のメソッドでも、定義元のGemファイルによってコーディング規則は異なる。

0
0
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
0
0