小编Maa*_*ark的帖子

Rails 3:被称为nil的id,这将错误地为4

我正在运行Rails 3并且喜欢有一个消息系统.以下是它的教程:http://www.novawave.net/public/rails_messaging_tutorial.html

它适用于Rails 2,所以我试图在Rails 3中实现它.

但在我构建"/ view/sent/index /"并尝试发送消息(即使没有人无法读取它)后,我收到了一个错误:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id

app/models/message.rb:16:in `prepare_copies'
app/models/message.rb:14:in `each'
app/models/message.rb:14:in `prepare_copies'
app/controllers/sent_controller.rb:19:in `create'  
Run Code Online (Sandbox Code Playgroud)

我的"发送"控制器看起来像:

def create
    @message = current_user.sent_messages.build(params[:message])

    if @message.save
      flash[:notice] = "Message sent."
      redirect_to :action => "index"
    else
      render :action => "new"
    end
end
Run Code Online (Sandbox Code Playgroud)

第19行将是"if @ message.save"

所以我用谷歌搜索并发现@message可能是零,但我无法理解为什么.

"view/sent/new /"表单如下:

<% form_for :message, :url => {:controller => "sent", :action => "create"} do …
Run Code Online (Sandbox Code Playgroud)

null message ruby-on-rails ruby-on-rails-3

2
推荐指数
1
解决办法
9548
查看次数

标签 统计

message ×1

null ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1