###前提
UserConroller users/show 画面に、別モデル Messageの情報を入力、保存できるフォームを設置したい。
MessagesController
class MessagesController < ApplicationController before_action :logged_in_user def create @user = User.find(params[:id]) @message = Message.new(message_params) if @message.save flash[:success] = "登録が完了しました!" redirect_to root_path else render 'new' end end private def message_params params.require(:message).permit(:sender_id, :receiver_id, :main) end end
UserController
class UsersController < ApplicationController before_action :logged_in_user, only: [:show] def show @user = User.find(params[:id]) @hosts = current_user.favoring_hosts end
views/users/show
<h1><%= @user.name %></h1> <div class="message_form col-sm-6"> <%= render 'messages/new' %> </div>
views/messages/_new
<div class="col-sm-8 col-sm-offset-2"> <% @message = Message.new unless @message %> <%= form_for @message do |f| %> <%# form_for(@message, :url=>{:controller=>"messages", :action=>"create"}) do |f| %> <%= f.label :main %> <%= f.text_area :main %> <%= f.hidden_field :sender_id, value: current_user.id %> <%= f.hidden_field :receiver_id, value: current_user.id %> <%= f.submit "送信", class: "btn btn-primary" %> <% end %> </div> こちらのコメントアウトは、form_forをどのように記述するか迷ったため残しています。
現状、こちらのエラーが発生しています。→リンク内容
どのようにすれば、適切に設置、保存できるでしょうか?
どうか、知恵をお貸しください。長文大変失礼しました。
また、コードの記述に関するアドバイスも宜しければお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。