Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby:变量范围问题_Ruby On Rails_Ruby_Variables_Scope_Models - Fatal编程技术网

Ruby on rails Ruby:变量范围问题

Ruby on rails Ruby:变量范围问题,ruby-on-rails,ruby,variables,scope,models,Ruby On Rails,Ruby,Variables,Scope,Models,嘿,我是新手 我曾经在我的一个控制器里有很多东西。有人告诉我,拥有“胖模型和瘦控制器”是一种很好的做法,所以我把一些东西移到了模型上 在我的控制器的show方法中,我曾经在视图中使用了一些@variables。现在我在模型中的一个方法中有了这些变量。我是否仍能访问我视图中的那些内容?如果是的话,我需要做任何调整吗 谢谢您必须在控制器中创建一个模型实例作为@变量。然后可以从视图内部调用这些方法 e、 想象一下,你的控制器中有一长串逻辑,用来计算客户的信用分数,最终达到 @credit_score

嘿,我是新手

我曾经在我的一个控制器里有很多东西。有人告诉我,拥有“胖模型和瘦控制器”是一种很好的做法,所以我把一些东西移到了模型上

在我的控制器的show方法中,我曾经在视图中使用了一些@variables。现在我在模型中的一个方法中有了这些变量。我是否仍能访问我视图中的那些内容?如果是的话,我需要做任何调整吗


谢谢

您必须在控制器中创建一个模型实例作为@变量。然后可以从视图内部调用这些方法

e、 想象一下,你的控制器中有一长串逻辑,用来计算客户的信用分数,最终达到

@credit_score = credit_score
现在,您已经在
Customer
模型上将其移动到
credit\u score
方法中

你现在只需要

@customer = Customer.find...
在控制器中

您可以在视图中使用


这就是人们所说的胖模型和瘦控制器。如果您想获得更多建议,那么最好使用应用程序中的一些细节更新问题。

常见做法是在控制器中定义此类变量:

@object = Model.new
以后在或类似的情况下使用它。有些人使用
模型。而直接在视图中使用new
。这有点不寻常,但仍然有意义,特别是知道Rails每次都只是循环遍历控制器中的所有实例变量,以使它们在视图中可用