我正在运行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)