【发布时间】:2016-01-25 08:48:59
【问题描述】:
我有这个before_action 方法:
def convert_duration_reminder
allowed_duration_units = %(hour day)
if allowed_duration_units.include? params[:store][:store_setting_attributes][:reminder_unit]
store_settings_params = params[:store][:store_setting_attributes]
@duration_reminder = store_settings_params[:reminder_duration].to_i.send(store_settings_params[:reminder_unit]).to_i / 3600
else
redirect_to store_settings_store_path(id: current_store.id)
end
end
我内心有一点点逻辑。 @duration_reminder 用于update_attributes。
它属于控制器吗?对我来说是的,因为我正在使用参数并且我有一个重定向并且方法很短(行长除外......)并且不处理数据库中的任何数据。
此方法只是根据用户在视图中选择的内容(“2 小时”、“1 天”)以分钟为单位转换时间。
来自Rails 4 action这本书,它是这样写的:
■ 模型包含应用程序的域逻辑。这个逻辑 指示如何检索、验证数据库中的记录或 被操纵。在 Rails 应用程序中,模型定义了代码 与数据库的表交互以检索和设置信息 在他们之中。域逻辑还包括诸如验证或 要对数据执行的特定操作。
■ 控制器与模型交互以收集信息以发送到视图。他们是 用户和数据库之间的层。他们调用方法 模型类,它可以返回代表行的单个对象 这些对象的数据库或集合(数组)。控制器 然后通过实例使这些对象对视图可用 变量。控制器也用于权限检查,例如 确保只有具有特殊权限的用户才能执行 某些操作可以执行这些操作,而没有这些操作的用户 权限不行。
def convert_duration_reminder 是否属于控制器?
【问题讨论】:
-
@Pavan:我的问题是“
def convert_duration_reminder方法是否属于控制器?” -
是的。它应该属于控制器。
-
如果他们是不赞成投票的人,请添加评论以解释原因...
标签: ruby-on-rails design-patterns model-view-controller