【问题标题】:undefined method for nil:NilClassnil 的未定义方法:NilClass
【发布时间】:2013-01-19 19:01:09
【问题描述】:

上传控制器

def create
@upload = @order.uploads.build(params[:uploadtwo]) 
   respond_to do |format|
    if @upload.save
    format.html { redirect_to root_path, :notice => 'File was successfully uploaded.' }
    format.json { render :json => @upload, :status => :created, :location => @upload }
  else
    format.html { render :action => "new" }
    format.json { render :json => @upload.errors, :status => :unprocessable_entity }     
end

结束

上传模型

belongs_to :order

订购型号

has_many :uploads

我收到错误 [NoMethodError in UploadtwosController#create],[未定义的方法 `uploads' for nil:NilClass]

有人知道我没有做什么吗?

【问题讨论】:

    标签: ruby-on-rails-3 undefined has-many belongs-to


    【解决方案1】:

    仅在您的上传模型中声明belongs_to :order 并不意味着@order 将在控制器中自动定义。也许您想要的是控制器中的before_filter,它将设置@order

    【讨论】:

    • 感谢您的快速响应。我将如何定义它?我是 Rails 新手,这是我的第一个应用程序。
    • 在你的控制器的某个地方,你会想要有类似的东西:before_filter { @order = Order.new(...) }。究竟应该用什么代替 ... 取决于您希望默认 @order 拥有什么数据。在 Rails 指南中查找“before_filter”以获取更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多