首页 > 解决方案 > 表单未使用 form_with 提交

问题描述

我正在尝试提交表单,但不幸的是没有任何事情发生,我没有可以调试的错误。当按下提交时没有任何反应,感谢您的帮助。

看法:

  <div class="modal-body">
          <%= form_with model: Message.new  do |f| %>
            <%= f.hidden_field :receiver_id, value: @users.last.id %>
            <div class="form-group">
                <%= f.text_area :content, class: "form-control", placeholder: "Write Message", rows: "2" %>
            </div> 
            <div class="modal-footer justify-content-end">
                <%= f.submit "Send", class: "btn btn-primary"%>
            </div>  
          <% end %>         
        </div>

路线:

  get 'conversations', to: 'conversations#list', as: "conversations"
  get 'conversations/:id', to: 'conversations#show', as: "conversation_detail"
  post 'messages', to: 'messages#create'

消息控制器:

class MessagesController < ApplicationController
  def create
    if current_user.id == message_params[:received_id]
        redirect_to request.referrer, alert: "You can't"
    end
    conversation = Conversation.where("(sender_id = ? AND receiver_id = ?) OR (sender_id = ? AND receiver_id = ?)", current_user.id, message_params[:receiver_id], message_params[:receiver_id], current_user.id).first

    if !conversation.present?
        conversation = Conversation.create(sender_id: current_user.id, receiver_id: message_params[:receiver_id])
    end
    @message = Message.new(user_id: current_user.id, conversation_id: conversation.id, content: message_params[:content], attachment_file: message_params[:attachment_file])

    if @message.save
        conversation.update!(updated_at: @message.created_at)
         respond_to do |format|
          format.html  # index.html.erb
          format.json  { redirect_to: root_path }
        end
    end
  end

private
    def message_params
        params.require(:message).permit(:content, :receiver_id, :attachment_file)
    end
end

在此处输入图像描述

标签: ruby-on-railsrubyruby-on-rails-6

解决方案


推荐阅读