前提・実現したい
ruby&railsを学んで2ヶ月で一対多、多対多の関係は言ってる事は分かったのものの、何も見ずには作れないくらいの知識です。
仕事上で「社内で使う指示・連絡用のアプリ」を作ることになりました
やろうとしている事
店長(user)から社員(staff)に指示を送る際
ドロップダウンで指示を出す社員の名前(staff)を入れ
指示内容(comment)を入力し投稿すると
店長は自分の送った指示一覧を
社員は自分宛てに届いたコメントを閲覧できるようにしたいと思っています。
Micropostの形をそのまま使い試しに作っています。
発生している問題・エラーメッセージ
指示内容と社員入力欄は出来上がり
送信を押したところエラーが出るようになりました。
該当のソースコード
MicropostsController
Rails
1class MicropostsController < ApplicationController 2 before_action :require_user_logged_in 3 4 def create 5 @micropost = current_user.microposts.build(micropost_params) 6 if @micropost.save 7 flash[:success] = 'メッセージを送信しました。' 8 redirect_to root_url 9 else 10 @microposts = current_user.microposts.order(id: :desc).page(params[:page]) 11 flash.now[:danger] = 'メッセージの送信に失敗しました。' 12 render 'toppages/index' 13 end 14 end 15 16 def destroy 17 end 18 19 private 20 21 def micropost_params 22 params.require(:micropost).permit(content) 23 end 24end
toppages/index
Rails
1<% if logged_in? %> 2 <div class="row"> 3 <aside class="col-sm-4"> 4 <%= form_with(model: @micropost, local: true) do |f| %> 5 <div class="form-group"> 6 <%= f.label :title, '指示内容' %> 7 <%= f.text_area :comment, class: 'form-control', rows: 5 %> 8 <%= f.label :title, '誰に送りますか?' %> 9 <%= f.select :staff, [["石崎", "isizaki"], ["菊池", "kikuti"]], :prompt => "選択してください" %> 10 </div> 11 <%= f.submit '送信', class: 'btn btn-primary btn-block' %> 12 <% end %> 13 </aside> 14 <div class="col-sm-8"> 15 <%= render 'microposts/microposts', microposts: @microposts %> 16 </div> 17 </div> 18<% else %> 19 <div class="center jumbotron"> 20 <div class="text-center"> 21 <h1>Welcome to the Microposts</h1> 22 <%= link_to 'Sign up now!', signup_path, class: 'btn btn-lg btn-primary' %> 23 </div> 24 </div> 25<% end %>
試したこと
MicropostsControllerの
rails
1 def micropost_params 2 params.require(:micropost).permit(:content) 3 end
を
rails
1 def micropost_params 2 params.require(:micropost).permit(:comment, :staff) 3 end
へ変更してみましたがダメでした。
補足情報(FW/ツールのバージョンなど)
この後、自分宛てに届いたコメントのみを社員は閲覧できるようにしたいと思っていて
rails
1rails g model Micropost comment:string user:references staff:string
で、指示(comment)に対し送信者(user)と指示を受ける人(staff)を持たせてみたのですが
どのようにしたらuserとstaff同じ名前のものを表示できるのかが分からないので
参考になるようなのもが有りましたら教えていただけると勉強になります。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/02 13:20 編集