假设我有一个函数trim_string(string),我希望在模型和控制器中的整个Rails应用程序中使用它.如果我把它放在应用程序助手中,它会进入控制器.但通常不需要从模型中使用应用程序帮助程序.那么你在哪里放置了你想要在模型和控制器中使用的通用代码?
解决方法
回答具体问题“你在哪里放置了你想要在模型和控制器中使用的通用代码?”:
把它放在lib文件夹中.将加载lib文件夹中的文件,其中的模块将可用.
更详细地说,使用问题中的具体示例:
# lib/my_utilities.rb module MyUtilities def trim_string(string) do_something end end
然后在您想要的控制器或模型中:
# models/foo.rb require 'my_utilities' class Foo < ActiveRecord::Base include MyUtilities def foo(a_string) trim_string(a_string) do_more_stuff end end # controllers/foos_controller.rb require 'my_utilities' class FoosController < ApplicationController include MyUtilities def show @foo = Foo.find(params[:id]) @foo_name = trim_string(@foo.name) end end