【问题标题】:Rails: ActionView::Template::Error - undefined method 'comment'Rails:ActionView::Template::Error - 未定义的方法“评论”
【发布时间】:2013-02-07 19:41:55
【问题描述】:

我在为输入数据呈现表单时遇到问题。控制器如下所示:

class AdsController < ApplicationController
  def new
    @ad = current_user.ads.build()
    respond_to do |format|
      format.html { render :layout => 'new' }# new.html.erb
      format.json { render json: @ad }
    end
  end
end

在视图中(相关部分):

<%= form_for ([@ad.user, @ad]) do |f| %>
  ...
  <%= f.label 'Description' %></div>
  <%= f.text_area :comment, cols:35, rows:4 %>
  ...
<% end %>

还有模特:

class Ad < ActiveRecord::Base
  attr_accessible :title, :url, :comment, :category_id, :layout, :user_id
  ...
end

当我渲染表单时,我得到了错误:

ActionView::Template::Error(未定义的方法 `comment' for

)

这很奇怪,因为在 localhost 上它可以工作,但是在将应用程序上传到 Heroku 后,我收到了这个错误。

哪里有问题?

【问题讨论】:

  • 您确定迁移数据库了吗? rake db::migrate?我认为这是我前段时间的原因。

标签: ruby-on-rails ruby heroku


【解决方案1】:

检查您的迁移:

$ heroku run rake db:migrate:status

确认您已运行所有迁移。当您推送新代码时,Heroku 不会自动运行您的迁移。

运行$ heroku run rake db:migrate 来运行它们。

【讨论】:

    【解决方案2】:

    重新启动 heroku dyno 对我有用

    $ heroku ps:restart
    

    【讨论】:

      【解决方案3】:

      我的数据库迁移都是最新的,所以重新启动 heroku dyno 为我解决了这个问题。我跑了:

      heroku ps:restart

      【讨论】:

        猜你喜欢
        • 2015-06-11
        • 1970-01-01
        • 1970-01-01
        • 2013-04-10
        • 2015-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多