【发布时间】:2015-12-25 06:17:13
【问题描述】:
一般来说,控制器在表示层,从模型中获取数据并发送到view。
现在,我的控制器获得了一个数据,但我需要将格式转换为可在视图上使用的 javascript 样式。例如,我有一个X 的列表,和一个Y 的列表,我需要创建两种可以直接在视图中使用的表。所以我需要一个叫create_table X Y的方法,例如:
def create_table X Y
@table1 = .....
@table2 = .....
end
@table1 和 @table2 在视图中使用。
所以我的问题是,把这个函数放在哪里?
在控制器中?我认为控制器中的大多数方法都意味着与特定视图相关的操作。
在控制器中的私有?我看到在controller里面有set_XXX,XXX_params这样的方法是私有的,如果我把方法放在这里,视图可以直接访问方法中的实例吗?
在助手中?我看到有人把方法放在这里,并在控制器中包含了助手,但据我所知,助手中的方法仅供视图使用。
谁能帮帮我?谢谢!
【问题讨论】:
-
这听起来像一个presenter或decorator。我会在
app文件夹中添加一个presenters文件夹,并将一个类放入该文件夹中。 -
将函数放入
helper
标签: ruby-on-rails ruby model-view-controller architecture