前提・実現したいこと
僕はrailsでsnsを作っているのですが、ユーザがジャンルを選べるようにしたいと思っています。具体的にはユーザが投稿の際、全てのジャンルの中から選べるというのと、ジャンルがそこになかったら、作ってジャンルを追加するというふうにしたいと思っています。追加したジャンルは既存のジャンルに追加されるようにしたいです。
ですがそれをどのようにすればいいのかわかりません。どうすればいいのでしょうか?
できれば、内容の投稿フォームと同じ場所でジャンル選択をする仕様にしたいです。
最初に、genreテーブルを作り、postテーブルのレコードがgenre_idを持つようにすればいいと思っています。
該当のソースコード
ruby
1view 2<div class="container"> 3 <div class="row"> 4 <div class="col-sm-8 col-sm-offset-2 form"> 5 <%= form_for @post, url: end_user_posts_path do |f| %> 6 <% if @post.errors.any? %> 7 <%= @post.errors.count %>件のエラーが発生しました。 8 <% @post.errors.full_messages.each do |message| %> 9 <ul> 10 <li><%= message %></li> 11 </ul> 12 <% end %> 13 <% end %> 14 15 <div class="row"> 16 <div class="col-sm-6 col-sm-offset-3"> 17 <%= f.attachment_field :image %> 18 </div> 19 </div> 20 <br> 21 <div class="row"> 22 <div class="col-sm-6 col-sm-offset-3"> 23 <%= f.text_area :content, class:"form-control", rows:"3", placeholder:"コメントここに" %> 24 </div> 25 </div> 26 <hr> 27 <div class="row"> 28 <div class="col-sm-6 col-sm-offset-3"> 29 <%= f.submit "投稿", class:"btn btn-primary btn-block" %> 30 </div> 31 </div> 32 <% end %> 33 </div> 34 </div> 35</div> 36 37controller 38def create 39 @post = Post.new(post_params) 40 @post.user_id = current_user.id 41 if @post.save 42 flash[:success] = '投稿しました!' 43 redirect_to end_user_posts_path 44 else 45 render action: :new 46 end 47 end
補足情報(FW/ツールのバージョンなど)
gemはなるべく使わないようにしたいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/05 05:21