私のレールアプリには3つのモデルがあります。トレイル、地域、およびフィーチャー。私はlib/tasksディレクトリのこれらのモデルとうまくやりとりすることができます。私はアネモネを使用してデータベースをクロールして読み込みました。レール:スタックレベルが深すぎるエラー
Trail.find_or_initialize_by_title(detail_title)
私はモデルを使用するコントローラを作成しようとしています。私はレールのコンソールを開き、app.get('trail/index')
をしようとした場合
class TrailController < ApplicationController
def index
render :json => Trail.all
end
end
は、今私は500リターンコードを取得し、私は私のdevelopment.log
SystemStackError(スタックレベルが深すぎる)に以下を参照してください。
アプリ/コントローラ/ trail_controller.rb:23: `index '内
私は明らかに無限の再帰を引き起こしています。 23行目はindexメソッドの本体に対応しています。私は私のアプリで他のモデルを試しました:機能と地域と結果は同じです。誰かが私がここで間違っていることを教えてもらえますか、まったく正確に何が無限に再帰しているかを知るために、より多くのトレースを得ることができますか?
私のモデルは非常に単純です:
class Feature < ActiveRecord::Base
attr_accessible :name
has_and_belongs_to_many :trails
validates :name, :presence => true
end
class Region < ActiveRecord::Base
attr_accessible :hash_key, :name
has_many :trails
validates :hash_key, :name, :presence => true
end
class Trail < ActiveRecord::Base
# attr_accessible :title, :body
has_and_belongs_to_many :features
validates :title, :presence => true
end
これは何とかsearchlogic宝石によって引き起こされている表示されます。私は私のGemfileでこれを持っている:
gem 'rd_searchlogic', :require => 'searchlogic', :git => 'git://github.com/railsdog/searchlogic.|~
私はその行をコメントアウトすると、バンドルのインストールおよびapp.get物事が正常に動作し、再試行を実行します。だから、searchlogicはTrail.allをどうにかして妨害している。なぜTrail.allはsearchlogicをインストールしても動作しませんか?
次の場合はどうなりますか? 'trails = Trail.all;レンダリングjson:トレイル '? –
これらのモデルのいずれかでas_jsonまたはto_jsonを上書きしたと思います。 – apneadiving
私は 'trails = Trail.all;を試しました。レンダリング:json => trails'と同じエラーが発生しました。 – theraju