【发布时间】:2015-10-24 18:11:09
【问题描述】:
我刚刚将一些新功能从我的开发/测试交付到 heroku 生产。我已经实现了通过让 micropost 模型通过 parent_id 自加入来将 cmets 添加到 microposts 的可能性。
在 dev 中,当我在 dev 中使用该功能时,它工作正常,控制台显示以下内容用于生产:
2015-10-24T17:59:54.974585+00:00 app[web.1]: Started POST "/microposts" for 91.35.226.128 at 2015-10-24 17:59:54 +0000
2015-10-24T17:59:54.979271+00:00 app[web.1]: Car Load (1.0ms) SELECT "cars".* FROM "cars" WHERE "cars"."id" = $1 LIMIT 1 [["id", 1]]
2015-10-24T17:59:54.981868+00:00 app[web.1]:
2015-10-24T17:59:54.981869+00:00 app[web.1]: NoMethodError (undefined method `parent_id=' for #<Micropost:0x007f9f3036b290>):
2015-10-24T17:59:54.981870+00:00 app[web.1]: app/controllers/microposts_controller.rb:11:in `create'
2015-10-24T17:59:54.981871+00:00 app[web.1]:
2015-10-24T17:59:54.981871+00:00 app[web.1]:
2015-10-24T17:59:54.976228+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"*", "micropost"=>{"content"=>"Oooooder???"}, "parent_id"=>"37", "car_id"=>"2"}
它所抱怨的相应代码是这里的最后一行:
def create
@micropost = current_users_car.microposts.build(micropost_params)
if !params[:id].nil?
@micropost.car_id = params[:id]
end
@micropost.user_id = current_user.id
@micropost.parent_id = params[:parent_id]
由于它上面的行有效,我认为@micropost 不是零。 我尝试在 heroku 控制台中玩耍并创建一个 micropost 对象并设置并获取 parent_id 它工作得很好。 那么这里有什么问题呢?我迷路了:(
【问题讨论】:
-
你跑
heroku run rake db:migrate了吗? -
是的,这样做了 - 两次甚至检查!
-
这似乎是一个愚蠢的问题,但由于控制台工作正常,您是否重新启动了网络应用程序?
-
不,我想我没有? Heroku 不会自动执行此操作吗?到目前为止,我认为我从未这样做过?
-
试试
heroku restart -a app_name。如果它仍然不起作用,那么您至少会消除另一个选项来说明原因;)
标签: ruby-on-rails ruby-on-rails-4 heroku production