発行したが、私はどちらかを見つけ出すように見えることはできません:私はTestCaseクラスという名前のモデルを持っている)奇妙なと一貫性のないモデルは、私は両方の状況ではなく、重要な何かが欠けてるように私は感じ
1 -
class TestCase < ActiveRecord::Base
belongs_to :test_suite
scope :queued, lambda { where("test_cases.suite_id IS NOT NULL") }
scope :assigned_to, lambda { |sid| where(:suite_id => sid) }
end
コントローラーは、コントローラーと完全に連携できます。ビューまたはビューヘルパー(TestCase.all
など)で情報を表示しようとすると、NoMethodError (undefined method 'all')
と表示されます。これを::TestCase.all
と呼ぶと、それが機能します。私はそれが別のモデル(belongs_to ...)に関連付けられているという事実と関係があるという理論を持っていましたが、私はそれを確認するための何かを見つけることができません、なぜそれが起こるのか教えてください。
2)別のプロジェクトでは、Artworkという名前の別のモデルがあります。再び、それには関連があります(belongs_to)。この場合、私はビュー内でそれを正常にアクセスすることができ、動的メソッド呼び出しをしようとする場合を除いて、コントローラ内のすべてのメソッドは正常に動作します。私NoMethodError
を与える
@artwork = Artwork.find(params[:id])
value = params[:value].to_sym
@artwork.update_attributes(value => [email protected](value).call)
- この場合、私はのためのシンプルなトグルを持っています。しかし、 - if @artwork.respond_to?(value)
を追加すると、期待どおりに動作します。再び、私は理由を理解できません。
上記の方法を使用して作業すると、どちらも重要なことがあります。
コードを4つ分スペースでインデントしてください。読めるのが難しいコードは、質問に対する回答が少なくなるという意味です。 – jergason