今回はタグ付け機能を作成していきます。
準備
Gemfileに以下を追加してbundle installを実行します。
gem 'acts-as-taggable-on', '~> 9.0'
タグ用のマイグレーションを行います。以下を実行します。
rails acts_as_taggable_on_engine:install:migrations
7つのmigrationファイルが追加される。migrationエラーが出る場合はrails db:migrateも実行する。そしてmodelに以下を追加します。
acts_as_taggable_on :tags
次にcontrollerに以下を追加します。tag_listはタグを格納します。
def ○○_params
params.require(:○○).permit(:○○,...,:tag_list)
end
view
formには以下を追加する。
<div>
<%= f.label :tag_list %>
<%= f.text_field :tag_list, value: ○○.tag_list.join(',') %>
</div>
タグの表示には以下を追加する。
<% tag_list.each do |tag| %>
<div>
<%= link_to tag, ○○_path(tag_name: tag) %>
</div>
<% end %>
def ○○
if params[:tag_name]
@変数 = モデル.tagged_with("#{params[:tag_name]}")
end
end