Ruby on rails rubyonrails中错误的表单

Ruby on rails rubyonrails中错误的表单,ruby-on-rails,ruby,Ruby On Rails,Ruby,在尝试从一个用户向另一个用户发送消息时,我一直遇到问题 用户模型 用户显示视图 对话显示视图 : 对话控制器 类会话控制器 <% @test.map do |c| %> <%= c.sender.name %>: <%= c.message %><p></p> <% end %> <%= form_for Message.new do |f| %> <%= f.text_field :mess

在尝试从一个用户向另一个用户发送消息时,我一直遇到问题

用户模型 用户显示视图

对话显示视图

:

对话控制器
类会话控制器
消息创建控制器
class messages控制器

当我在conversations show视图中使用表单_时,会出现“找不到没有ID的用户”错误,尽管我觉得它应该为两个用户提供ID?

问题出在这一行:

@message.receiver_id = User.find(params[:id])
params[:id]
nil
。您必须以以下形式发送
id

<%= form_for Message.new do |f| %>
<%= f.text_field :message %>
<%= f.hidden_field :id, :value => the_user_id_goes_here %>
<%= f.submit %>
<% end %>

用户id在此处显示%>

由于我将ID作为参数从User show视图引入,如何将其输入隐藏字段?如果您在users controller show action中设置了
@User
@User.ID%>
<% @test.map do |c| %>
<%= c.sender.name %>:
<%= c.message %><p></p>
<% end %>

<%= form_for Message.new do |f| %>
<%= f.text_field :message %>
<%= f.submit %>
<% end %>
class ConversationsController < ApplicationController

def show
 #current user
 #other use in conversation
 @other_user = User.find(params[:id])
 @test = Message.where("sender_id IN (#{current_user.id},#{@other_user.id}) AND receiver_id IN (#{current_user.id}, #{@other_user.id})")
end

end
class MessagesController < ApplicationController

  def index
   @message = current_user.friends
  end


  def create
    @message = Message.new(params[:message].permit!)
    @message.sender_id = current_user.id
    @message.receiver_id = User.find(params[:id])
  if @message.save
    redirect_to :root 
  end
end
end
@message.receiver_id = User.find(params[:id])
<%= form_for Message.new do |f| %>
<%= f.text_field :message %>
<%= f.hidden_field :id, :value => the_user_id_goes_here %>
<%= f.submit %>
<% end %>