本文介绍了在1种控制器方法中将2个项目保存在db中(rails)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一次在数据库中保存2个项目的问题(我正在使用rails 3.1)。我有模型消息

i have a problem with saving 2 items in db at one moment(i am using rails 3.1). I have model Message

class Message < ActiveRecord::Base
  belongs_to :user
  validates_presence_of :content
end

消息模型具有参数:user_id(接收者),user_from(发件人)和content(文本)

Message model have params: user_id(reciever), user_from(sender), and content(text)

模型用户是

class User < ActiveRecord::Base
  has_many :posts
  has_many :messages
end

在MessagesController中,我有方法

in MessagesController i have method

 def create
  @message =Message.new(params[:message])


  User.find(@message.user_id).messages.build(params[:message])
  User.find(@message.user_from).messages.build(params[:message])
  end

,问题是User.find(@ message.user_id)仅具有此消息,user_from不具有。我什至尝试了这个 User.find(2).messages.build(params [:message])而不是 User.find(@message。 user_from).messages.build(params [:message])和ID为2的用户也没有此消息,只有user_id的用户才有。我在做什么错??

and the problem is that User.find(@message.user_id) only have this message , user_from dont have. I even have tryed this User.find(2).messages.build(params[:message]) instead of User.find(@message.user_from).messages.build(params[:message]) and user with id 2 dont have this message too, only user with user_id have. what i am doing wrong??

预先感谢

推荐答案

使用 create 而不是 build

build 用于创建模型实例但又不想立即保存的情况。在您的情况下,正在创建但未保存消息实例。

build is used when you want to create an model instance but don't want to save it immediately. In your case the message instances are being created but not saved.

这篇关于在1种控制器方法中将2个项目保存在db中(rails)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 09:19