2011-08-12 23 views
0

私はこれを持っていました。Rubyオブジェクト未定義のメソッド

は今、私は私がそれにアクセスできるように必要なので、これはこれは、ルビーコンソール抽出物である

class ProposalsController < ApplicationController 
    attr_accessor :forkIt 
    def forkIt 
     return "FFFFFUUUU" 
    end 
end 

を来たことをどこかで読ん

ruby-1.9.2-p0 > @proposal = Proposal.find(4) 
=> #<Proposal id: 4, title: "asda", description: "fdsfds", owner: 1, parent_id: nil, created_at: "2011-08-12 21:28:39", updated_at: "2011-08-12 21:28:39"> 
ruby-1.9.2-p0 > @proposal.forkIt 
NoMethodError: undefined method `forkIt' for #<Proposal:0x9b11030> 

しかし、まだ何も...このRubyのnoobのを助けません。ありがとう。

+1

どのように呼び出すかを教えてください。 – 99miles

+1

メソッドを呼び出す/アクセスしようとしていますか? 'attr_accessor'はメソッドではなくインスタンス変数のためのものです。デフォルトでは、Rubyのすべてのメソッドはpublicになっています。 – coreyward

+0

また、「返品」は必要ありません。最後の行が自動的に返されます。 – 99miles

答えて

3

あなたのコントローラProposalsControllerであなたのforkIt法上の定義されていますが、モデルにそれを呼び出すProposalです。

forkItをモデルクラスに移動する必要があります。

@proposal = Proposal.find(4)Proposalクラスのインスタンスであり、ProposalControllersクラスではありません。

+0

私はすでにそれを理解しましたが、感謝します。 –

関連する問題