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 %>