先日、掲載されているものに応募をして、応募者と掲載者のDM機能の作成で質問をした際に、devise関連で不具合を起こしていると指摘していただき、すでにログイン機能を完成していたことから、deviseを外してDM機能を作成しなおす事にしました。
その時点ではマイグレーションファイルから
・Room(DMのルーム)
・Entry(ルームに入れるユーザーを判別)
・message(メッセージを送る機能)
この3点はdeviseなし後も有効に使えるかなと思っています。
そこから作成をしていたのですが、応募ボタンが表示されなくて困っています。
plan_controllerのshowからルームの作成状況を聞き出して、
閲覧している掲載に応募(roomが作成されている)状況ならメッセージへ飛ぶボタン。
初めて応募する場合(roomが作成されていない)状況なら応募できるようにviewの
コードを書きました。
しかし実行してみると、応募ボタンも、メッセージへのボタンも何もありません。
なぜ表示されないのでしょうか?
怪しい箇所を載せさせていただきます。
・view/plan/showの応募ボタン箇所
<% if @is_room == true %> <%= link_to 'メッセージへ', room_path(@room_id), class:"btn btn-primary btn-lg plan-show-chat" %> <% else %> <% form_for @room do |f| %> <% fields_for @entry do |e| %> <%= e.hidden_field :user_id, value: @plan.user.id %> <% end %> <%= f.submit "応募", class:"btn btn-primary btn-lg plan-show-chat"%> <% end %>
・plans_controllerのshow
def show @plan=Plan.find(params[:id]) @currentUserEntry=Entry.where(user_id: current_user.id) @userEntry=Entry.where(user_id: @plan.user.id) unless @plan.user.id == current_user.id @currentUserEntry.each do |cu| @userEntry.each do |u| if cu.room_id == u.room_id then @isRoom = true @roomId = cu.room_id end end end if @isRoom else @room = Room.new @entry = Entry.new end end end
色々とDM機能について検索してみるとuserからのDM機能が多く、その他からDMが作成されているものがなく、私自身の流れや構成の解釈や分析が大丈夫か初心者の為、不安です。
下記のサイトのuser_controllerのcreateに記述する箇所をplan_controllerに記述したのですが掲載(plan)から応募してDM機能が作動する際はplan_controllerに記述してよいのでしょうか?
https://qiita.com/bindingpry/items/6790c91f374acc25bea2
回答1件
あなたの回答
tips
プレビュー