|
|
1
12
更新:我根据这个答案添加了一篇博文,但更多细节: http://thoughtsincomputation.com/posts/coding-an-acts_as-gem-for-rails-3
我不知道另一个教程的来源在我的头顶上,但这里有一些一般的提示。 Rails 3使用了一个非常有用的特性,叫做Railtie-see http://api.rubyonrails.org/classes/Rails/Railtie.html .
还有ActsAsAwesome::Hook代码:
我觉得这里的概念是合理的,以前也用过类似的方法。基本上,它会告诉Rails在生产过程中和开发中的每个请求之前执行一次to-prepare块(我们希望这样做,因为ApplicationController将在那些时候重新加载,可能会抹去我们的hook方法);而hook就是:它向所有控制器(或者更确切地说,所有扩展ApplicationController的控制器)允许用户在不影响不需要的控制器的情况下,将真正的“棒极了”代码引入控制器。 acts-as-awesome-hook本身并不能传达令人敬畏的功能。这是因为并非所有控制器都需要此功能。相反,该方法负责引入 很棒的东西,通过ActsAsawome::InstanceMethods模块。这样,用户只有在显式调用acts_as_Awesome方法时才能获得令人敬畏的功能。它还向控制器添加了一个before过滤器,以证明此方法中的代码的计算结果与目标控制器类中的代码完全相同。 如果目标是模型而不是控制器,则此技术的工作原理应该完全相同:只需将钩子插入ActiveRecord::Base。由于AR:B只在Rails启动时加载,您应该能够将其放入一个初始值设定项中(请参阅Railtie文档),但我保留在这里出错的权利。 关于railtie的一个问题是:文档读起来好像应该自动检测到它,但是我经常遇到这个问题。要解决这个问题,只需要从gem的主源文件中获取railtie(在上面的例子中,这将是lib/acts-as-awesome.rb)。 http://github.com/sinisterchipmunk/acts_as_awesome 我希望这对你有帮助。你的问题有点高层次,所以我只能做出高层次的回答。 -科林麦肯齐四世 http://thoughtsincomputation.com @险恶的奇普尼克 |
|
|
chris cozzens · 访问哈希/数组内的数据 8 年前 |
|
|
lifemoveson · Ruby-CSV中的输出文件位于一列中 8 年前 |
|
|
John Smith · 重写方法Ruby 8 年前 |
|
|
Dhinakaran · 忽略gems,因为它的扩展未构建[重复] 8 年前 |
|
|
DaMa NaMu · 输入url时出现错误的新rails安装 8 年前 |
|
|
anshul410 · 带EX和NX的Ruby REDIS 8 年前 |