先日会社でサービスの開発をしている時、URLパラメータを取得しているのに読み込まれていない事案が発生しました。
案外ミスしがちなポイントだったので記事に残します。(タイトルが結論ですが。)
やりたかったこと
URLパラメータをインスタンス変数に入れてviewで表示内容を変えるというものです。
controler.rb
@user_type = params[:id] # URLパラメータの値を取得
view.rb
<% if @user_type == "1" %>
<%= link_to %>
<% end %>
はまりポイント
はまりポイントというほどでもないですが、ちょいはまりくらいです。
URLパラメータは文字列型で取得されることです。
ですので「よし、id=1のパラメータを取得したぞぉ」といってif @user_type == 1
と書いても認識されないわけです。
まとめ
「URLパラメータは全て文字列で取得される。IntegerやArrayで使用したい場合は都度、変更する必要があ
る。」
URLパラメータ、別名クエリ文字列と言われるのでクエリ文字列で覚えてたらこんなミスはないと思いますが,,,