2015-10-02 5 views
8

については未知のメソッドancestryで祖先の宝石が壊れます。祖先の宝石(ローカルでは再現できません)でのみ問題が発生しています: https://github.com/stefankroes/ancestryHerokuのみ:#<Model:0x #######>

A NoMethodErrorがホーム#アップロードで発生しました:#

方法について 未定義のメソッド `祖先は」次のようになります。

def anthem_upload 
    user = User.find_by(id: params[:user_id]) 
    anthem = Anthem.create!(user_id: user.id, body:params[:post]) <-- HAPPENS HERE 
    ... 
ene 

この方法は、さらに.ancestry方法に呼び出すことはありません - しかし、例外はすぐに発生しますモデルが作成されます。

モデルは次のようになります。ここでは

class Anthem < ActiveRecord::Base 
    has_ancestry 
... 
end 

はログです:

A NoMethodError occurred in home#anthem_upload: 

    undefined method `ancestry' for #<Anthem:0x007f1684d58b98> 
    app/controllers/home_controller.rb:335:in `anthem_upload' 
+0

herokuログに完全なエラートレースを表示できますか? –

+0

'model_upload'メソッドを表示するか、' anthem_upload'自体を表示しますか? –

+0

model_uploadはanthem_uploadです - 上記と同じです。奇妙なことは、このすべてがローカルでうまく動作していることです。ちょうどそれが爆発するHerokuで、 – etayluz

答えて

2

あなたはあなたのモデルにメソッドancestryを追加するには、マイグレーションを実行する必要があります。

heroku run rake db:migrate 

もちろん、あなたのアプリは開発時に動作すると仮定します。あなたのコメントを読んで、私は私の仮説を試した後

を編集ancestry

から撮影

rails g migration add_ancestry_to_[table] ancestry:string 

での移行を生成することができない場合。必要のないプロジェクトにancestry宝石を追加し、彼らは私が得たコンソールで、移行せずに、モデルTaskhas_ancestryを追加:

Loading development environment (Rails 4.2.2) 
~/ (development) > Task.new 
=> #<Task:0x00000008a3d088> { 
       :id => nil, 
     :project_id => nil, 
      :name => nil, 
     :description => nil, 
    :points_budget => nil, 
     :created_at => nil, 
     :updated_at => nil 
} 
~/ (development) > Task.new.save 
    (0.2ms) BEGIN 
    (0.2ms) ROLLBACK 
NoMethodError: undefined method `ancestry' for #<Task:0x00000008a9c998> 
from /home/alejandro/.rvm/gems/[email protected]/gems/activemodel-4.2.2/lib/active_model/attribute_methods.rb:433:in `method_missing' 
~/ (development) > Task.new.validate 
NoMethodError: undefined method `ancestry' for #<Task:0x00000008ad1210> 
from /home/alejandro/.rvm/gems/[email protected]/gems/activemodel-4.2.2/lib/active_model/attribute_methods.rb:433:in `method_missing' 

同じエラーあなたが得ました。もちろん、私は開発中です。あなたはherokuで次のようなものを試してみる必要があります:heroku run rails console

+0

ありがとう、しかし、私はそのマイグレーションと英雄でも行った – etayluz

+0

'heroku restart'を試しましたか?コンソールで、 'Anthem.first.ancestry'(レコードを保存している場合)でも試してみることができます。 –

+0

'heroku run rake db:migrate:status'を実行して、すべての移行が正常に終了したかどうかを確認できます。 –

関連する問題