0

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

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 之后,我收到了这个错误。

哪里可能有问题?

4

3 回答 3

1

检查您的迁移:

$ heroku run rake db:migrate:status

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

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

于 2013-02-07T20:05:13.340 回答
1

重新启动heroku dyno对我有用

$ heroku ps:restart
于 2015-06-24T21:08:50.093 回答
0

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

heroku ps:restart

于 2019-06-06T21:59:34.627 回答