我已经被告知,助手只是为视图所需的函数。我应该在哪里放置模型访问的函数? - Rails 3.1
我应该在哪里放置模型常用的函数?关于控制器呢?
什么是放置常用功能的惯例,将用于:
1)模型
2)意见
3)控制器
问题:创建模块在lib中保存这些函数并将该模块包含在一个类中将为该类创建实例方法的船载。
问题:那三种常见和需要的功能呢?
我已经被告知,助手只是为视图所需的函数。我应该在哪里放置模型访问的函数? - Rails 3.1
我应该在哪里放置模型常用的函数?关于控制器呢?
什么是放置常用功能的惯例,将用于:
1)模型
2)意见
3)控制器
问题:创建模块在lib中保存这些函数并将该模块包含在一个类中将为该类创建实例方法的船载。
问题:那三种常见和需要的功能呢?
application_controller.rb
application_helper.rb
ActiveRecord::Base
包括常用的方法或写通用模型方法的模块,它包括在需要它的模型或者用OOP的方式实现它,方法是用抽象类继承ActiveRecord :: Base,然后继承这个类的所有模型。要使用常用的方法在这两个模型和控制器,请执行下列操作之一:
require
当你需要使用它的方法时。谢谢。对于在模型和控制器中使用的功能,您会推荐什么? – user1049097
@ user1049097我已经更新了包含此信息的答案。 – buru
...通常情况下,我把这些样的功能为普通超:对于模型,这可能是(例如)动物的子类犬,猫,等。在动物模型,你就必须
self.abstract_class = true
所以它不指望该类的表。对于控制器,您可以使用ApplicationController,也可以让您的控制器由另一个公共子类派生。
在Model
,你应该保存所有具有类似属性的操作,范围,关联,关系到模型本身的方法...
在View
你不存储任何的逻辑!逻辑属于模型。在视图中,您只能放置可帮助您显示内容的代码。
Controller
是两者之间的“桥梁”。您在控制器中选择数据,调用存储在模型中的方法,...常见的失败是将逻辑存储在应存储在模型中的控制器中。
将方法存储在您的Model
中时,您可以从模型,视图和控制器访问它!如果您有一种方法与某个特定型号或几种型号所需的型号无关,则可以使用Helper
。这种情况的例子可能是一种使用模式重写URL的方法。这可能需要20个模型来为to_param
准备一个字符串。该方法将被存储在Helper
中,该模型可以包含在它需要的模型中。
问题:创建在LIB一个模块,以承载功能和包括在一个类中的模块将创建的实例方法的类船负荷。
首先组织,然后优化
问题:那么,那些是常见的,在所有三个所需的功能? 你真的有这三种方法都需要的方法吗? 如果是的话,可能是你可以举一个例子
我认为这个问题应该是在哪里把逻辑放在一般。 您应该先考虑一下您的方法在考虑放置位置之前所做的工作。但是无论你创建了什么,当它变得越来越大或者有价值时,你应该真的考虑将它作为gem/plugin导出。
内导航逻辑(什么来显示,并且其中一个动作后去):控制器
数据逻辑(如何操纵,处理数据):模型
数据表现逻辑(如何显示数据):助手,局部和装饰
布局语言逻辑(布局语言帮助):帮助
布局逻辑(我应该显示这个菜单?):
我想如果你不是在这个配置中,你正在创建一种后端系统。 所以它应该在lib中,然后在gem中。
这个组织只是一个例子。最重要的是组织你的代码并分割不同的逻辑层,并且毫不犹豫地重构/导出代码,以便在添加新功能后使其具有通用性......
你可以给出一个需要的函数的例子在所有三个? – nathanvda
extract_domain_name(url) - 逻辑模型和控制器都可能使用它。 – user1049097
Stemming是另一个 – user1049097