ご閲覧いただきましてありがとうございます。
RailsでCGMサイトを作っています。
タグページと、投稿ページが別々に存在していて、タグページで「タグ追加」ボタンをクリックすると、投稿ページにタグが追加されるような仕様を実装したいと考えています。
タグは、gem acts-as-taggable-on
を使っています。
実装イメージ
タグページにて、URLパラメーターを渡して投稿ページのshow画面に遷移する。
Ruby
1<a href="https://example.com/posts/xxx/?name=<%= @tag.name %>">タグを追加する</a>
(link_to使うとどんな書き方になるか分からなかったです。。)
name以下の @tag.name
を、投稿ページへ遷移する際に追加します。
app/controllers/posts_controller.rb
Ruby
1class PostsController < ApplicationController 2 def show 3 @post = Post.find(params[:id]) 4 @tags = @post.tag_list 5 unless @tags.include?(@tag.name) 6 @tags.push(@tag.name) 7 end 8 @post.save 9 flash[:success] = "タグが追加されました!" 10 end 11end
app/models/post.rb
Ruby
1class Keyword < ApplicationRecord 2 acts_as_taggable_on :tags 3 acts_as_taggable 4end
実際のところ、下記2点のやり方が不明瞭で困っています。
- タグページから、投稿ページへ遷移する際のパラメーターの渡し方
(できれば、link_to
を使った正式な書き方が知りたいです)
- コントローラーで受け取った
@tag.name
をどのように取り扱うのか
パラメーターから受け取った値をどのように変数に置き換えるのかが分からずに困っています。
基礎的な質問で申し訳ございませんが、URLのスラッシュ以下をなんと呼ぶのかが分からず、作り方がいまいち分からずじまいでした。。
すいませんが、お知恵を拝借させていただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/19 06:43