2011-08-04 14 views
2

Hey Rails newbie here。Ruby:変数の範囲の質問

私はコントローラの1つで多くのことが起こっていました。誰かが私に、「太ったモデルと薄いコントローラ」を持っているという良い練習をしていたので、モデルにいくつか移っていた。

私のコントローラのshowメソッドで、私は私のビューで使用するいくつかの@変数を使用していました。今私のモデルのメソッドにこれらの変数があります。私の見解ではまだそれらにアクセスできますか?もしそうなら、何か調整を加えなければならないのですか?

ありがとう

答えて

5

コントローラのモデルのインスタンスを@変数として作成する必要があります。ビューからそのメソッドを呼び出すことができます。

あなたは

@credit_score = credit_score 

で最高潮に達する顧客のクレジットスコアを計算し、あなたがCustomerモデルにcredit_scoreメソッドにこれを今すぐ移動したあなたのコントローラーのロジックのいくつかの長い束を持っていたと想像。

あなたは今だけのコントローラ

@customer = Customer.find... 

を必要とすることができますビュー内で使用 <%= @customer.credit_score %>

これは、脂肪モデルとシンコントローラによって人々が意味するものです。いくつかのアドバイスが必要な場合は、アプリからいくつかの詳細を質問に反映させることをお勧めします。

0

一般的な方法は、コントローラに、この種の変数を定義することです:

@object = Model.new 

後でform_forまたはそのような何かにそれを使用します。一部の人々は代わりにビューでModel.newを使用します。それはやや珍しいですが、特にRailsがあなたのビューで利用できるようにするたびに、コントローラ内のすべてのインスタンス変数をループすることを知っていれば、特に意味があります。