よろしくお願いします。
###前提・実現したいこと
**deviseを使ったUserモデルにacts-as-taggable-on**でタグを実装したいです。
###エラー内容
タグが表示されません。
###実行手順
①タグリスト追加
②テキストフィールドの用意
③deviseのStrongParametersを調整
④viewファイルの用意
###結果の予想
users/show.html.erb上にタグが表示されます。
###実際の結果
タグが表示されません。
エラー表示もでません。
###ステップ明記
③deviseのStrongParametersを調整ではないかと思います。
devise専用の配列パラメーターをgithubなどを参考に実装しています。
【before】
/application_controller.rb
def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:username, :shopname, :image]) devise_parameter_sanitizer.permit(:account_update, keys: [:username, :shopname, :image, :area, :birth, :portfolio, :profile, :job, :language, :logic, :link, :gender, :image, :header, ★{:skills_list => []}, {:interests_list => []}★]) end
【after】
/application_controller.rb
def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:username, :shopname, :image]) devise_parameter_sanitizer.permit(:account_update) do |u| u.permit(:email, :password, :password_confirmation, ~~~~~ {:skills_list => []}, {:interests_list => []}) end end
###文献の引用
■deviseのストロングパラメータに配列を追加する実装手順
①Allowing users to select tags on sign up form using acts-as-taggable-on
②In rails 4, how can I manipulate strong parameters before creation?
③Rails - Devise/Acts-as-taggable-on Gems - Make tag ownership unique to a user?
④mbleigh/acts-as-taggable-on
■acts-as-taggable-onの実装手順
①Railsでacts-as-taggable-onを使ってタグ管理を行う
②plataformatec/devise
###ソース
①タグリスト追加
【user.rb】
##Tag acts_as_taggable_on :skills, :interests acts_as_taggable
②テキストフィールドの用意
【users/registration/edit.html.erb】
・ ・ <div class="field"> <%= f.label :skill_list, "スキル・特技(カンマ区切り)" %><br> <%= text_field_tag 'user[skill_list]', @user.skill_list.join(',') %> </div> <div class="field"> <%= f.label :interest_list, "興味・関心(カンマ区切り)" %><br> <%= text_field_tag 'user[interest_list]', @user.interest_list.join(',') %> </div> ・ ・
③deviseのStrongParametersを調整
/application_controller.rb
def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:username, :shopname, :image]) devise_parameter_sanitizer.permit(:account_update) do |u| u.permit(:email, :password, :password_confirmation, ~~~~~ {:skills_list => []}, {:interests_list => []}) end end
④viewファイルの用意
【users/show.html.erb】
<table> <thead> <tr> <th>名前</th> <th>スキル・特技</th> <th>興味・関心</th> <th colspan="3"></th> </tr> </thead> <tbody> <% @users.each do |user| %> <tr> <td><%= @user.username %></td> <td><%= render 'users/tag_list', tag_list: user.skill_list %></td> <td><%= render 'users/tag_list', tag_list: user.interest_list %></td> <td><%= link_to 'Show', user %></td> </tr> <% end %> </tbody> </table>
###環境
devise (4.2.0) rails (5.0.0.1, 4.2.5) acts-as-taggable-on (4.0.0)
見てご助言いただければ光栄です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。