ssc*_*rus 3 ruby-on-rails helper ruby-on-rails-3
这是一些不起作用的简单代码:
module ApplicationHelper
def industries
industries = ['Agriculture','Food', etc.]
end
end
class User < ActiveRecord::Base
include ApplicationHelper
validates_inclusion_of :industries, :in => ApplicationHelper.industries
...
end
Run Code Online (Sandbox Code Playgroud)
运行用户操作时,此代码失败undefined method 'industries'.你知道我怎么能以正确的方式引用帮助者(或者最好只是行业)吗?
根据Mauricio在下面的答案中的代码,如何INDUSTRIES在控制器和视图中访问?我无法在任何地方访问行业,但我确实需要为我的应用程序提供服务.
你永远不应该做这样的事情.ApplicationHelper不应该包含在模型中.最佳解决方案是:
class User < ActiveRecord::Base
INDUSTRIES = ['Agriculture','Food']
validates_inclusion_of :industries, :in => INDUSTRIES
end
module ApplicationHelper
def industries
User::INDUSTRIES
end
end
Run Code Online (Sandbox Code Playgroud)
现在,您可以通过简单而美观的方式完成它.
编辑
您需要访问应该使用的行业的任何地方:
User::INDUSTRIES
Run Code Online (Sandbox Code Playgroud)
就是这样.
| 归档时间: |
|
| 查看次数: |
2489 次 |
| 最近记录: |