2011-08-04 113 views
2

嘿Rails新手在這裏。Ruby:變量範圍問題

我曾經有很多東西在我的控制器之一進行。有人告訴我,擁有「胖模型和瘦控制器」的好習慣所以我正在將一些東西轉移到模型上。

在我的控制器的show方法中,我曾經在我的視圖中使用了一些@變量。現在我的模型中有一個方法中有這些變量。在我看來,我仍能訪問那些人嗎?如果是這樣,我必須做出任何調整?

感謝

回答

5

你將不得不在控制器作爲@變量來創建模型的一個實例。然後,您可以從視圖中調用方法。

例如想象你有一些一長串的邏輯在你的控制器,它計算的信用評分爲客戶在

@credit_score = credit_score 

達到高潮,現在你已經轉移到這對Customer模型credit_score方法。

現在,您只需要

@customer = Customer.find... 

控制器

,您可以在視圖中使用<%= @customer.credit_score %>

這就是人們通過胖模型和瘦控制器所表達的意思。如果您需要更多建議,最好從應用中更新一些具體問題。

0

通常的做法是定義在控制器這樣的變量:

@object = Model.new 

到後來form_for或類似的東西使用它。相反,有些人直接在視圖中使用Model.new。這有點不尋常,但仍然有意義,特別是要知道,Rails只是循環訪問控制器中的所有實例變量,以使其在您的視圖中可用