【问题标题】:Heroku Rails NoMethodErrorHeroku Rails NoMethodError
【发布时间】:2016-07-05 16:40:49
【问题描述】:

我的应用在本地运行完美,但在Heroku 上遇到了一些问题。

heroku 日志

2016-07-05T16:29:58.946783+00:00 app[web.1]: Started GET "/posts/new" for 110.30.34.50 at 2016-07-05 16:29:58 +0000
2016-07-05T16:29:58.955329+00:00 app[web.1]:   Rendered posts/_form.html.erb (2.4ms)
2016-07-05T16:29:58.955545+00:00 app[web.1]:   Rendered posts/new.html.erb within layouts/application (3.4ms)
2016-07-05T16:30:05.508001+00:00 app[web.1]: Started POST "/posts" for 110.30.34.50 at 2016-07-05 16:30:05 +0000
2016-07-05T16:30:05.510085+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"0DzbuSXUyjZ4FRYietP3QSdmjfHymWyu7INcGpm79b2PgR+3LD99TS6gkYCF0FCLLHso9U7YqMh1tzr48ch8Jw==", "post"=>{"title"=>"123", "content"=>"123"}, "commit"=>"Create Post"}
2016-07-05T16:30:05.515017+00:00 app[web.1]:   app/controllers/posts_controller.rb:32:in `create'
2016-07-05T16:30:05.512757+00:00 app[web.1]:   Author Load (1.2ms)  SELECT  "authors".* FROM "authors" WHERE "authors"."id" = $1  ORDER BY "authors"."id" ASC LIMIT 1  [["id", 1]]
2016-07-05T16:30:05.513954+00:00 app[web.1]: Completed 500 Internal Server Error in 4ms (ActiveRecord: 1.2ms)
2016-07-05T16:30:05.515003+00:00 app[web.1]: 
2016-07-05T16:30:05.515016+00:00 app[web.1]: NoMethodError (undefined method `author_id=' for #<Post:0x007fcf1cc579f0>):
2016-07-05T16:30:05.509973+00:00 app[web.1]: Processing by PostsController#create as HTML
2016-07-05T16:30:05.515018+00:00 app[web.1]: 
2016-07-05T16:30:05.515019+00:00 app[web.1]: 

我想创建一个post 并给了author_id = current_author.id

#in post controller

def create
    @post = Post.new(post_params)
    @post.author_id = current_author.id if current_author
    ...

我已经把这个项目放在Github

【问题讨论】:

    标签: ruby-on-rails heroku devise


    【解决方案1】:

    正如其他人指出的可能的解决方案。但要确保,

    运行heroku run rake db:version 并查看它是否与db/migrate/* 中的最新迁移版本匹配

    如果它没有运行 heroku run rake db:migrate 就像 oreoluwa 和 lolosco 已经说过的那样。

    【讨论】:

    • 谢谢,我忘记了这个简单的步骤。
    【解决方案2】:

    我认为您最近在帖子表中添加了作者引用。要修复这个错误,我会说你应该尝试做heroku run rake db:migrate。让我知道这是否有帮助

    【讨论】:

    • 谢谢,我已经修好了。
    【解决方案3】:

    在heroku上迁移数据库

    heroku 运行 rake db:migrate

    【讨论】:

    • 谢谢,这是一个简单但重要的步骤。
    猜你喜欢
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多