嘿Rails新手在这里。Ruby:变量范围问题
我曾经有很多东西在我的控制器之一进行。有人告诉我,拥有“胖模型和瘦控制器”的好习惯所以我正在将一些东西转移到模型上。
在我的控制器的show方法中,我曾经在我的视图中使用了一些@变量。现在我的模型中有一个方法中有这些变量。在我看来,我仍能访问那些人吗?如果是这样,我必须做出任何调整?
感谢
嘿Rails新手在这里。Ruby:变量范围问题
我曾经有很多东西在我的控制器之一进行。有人告诉我,拥有“胖模型和瘦控制器”的好习惯所以我正在将一些东西转移到模型上。
在我的控制器的show方法中,我曾经在我的视图中使用了一些@变量。现在我的模型中有一个方法中有这些变量。在我看来,我仍能访问那些人吗?如果是这样,我必须做出任何调整?
感谢
你将不得不在控制器作为@变量来创建模型的一个实例。然后,您可以从视图中调用方法。
例如想象你有一些一长串的逻辑在你的控制器,它计算的信用评分为客户在
@credit_score = credit_score
达到高潮,现在你已经转移到这对Customer
模型credit_score
方法。
现在,您只需要
@customer = Customer.find...
控制器
,您可以在视图中使用<%= @customer.credit_score %>
。
这就是人们通过胖模型和瘦控制器所表达的意思。如果您需要更多建议,最好从应用中更新一些具体问题。
通常的做法是定义在控制器这样的变量:
@object = Model.new
到后来form_for
或类似的东西使用它。相反,有些人直接在视图中使用Model.new
。这有点不寻常,但仍然有意义,特别是要知道,Rails只是循环访问控制器中的所有实例变量,以使其在您的视图中可用