这是一些不起作用的简单代码:
module ApplicationHelper
def industries
industries = ['Agriculture','Food', etc.]
end
end
class User < ActiveRecord::Base
include ApplicationHelper
validates_inclusion_of :industries, :in => ApplicationHelper.industries
...
end
当用户操作运行时此代码失败undefined method 'industries'
。您知道我如何以正确的方式参考帮助者(或最好只是行业)吗?
Edit
根据下面 Mauricio 答案中的代码,如何INDUSTRIES
在控制器和视图中访问?我在让行业随处可访问方面遇到了真正的困难,但这确实需要适合我的应用程序。
你应该never做这样的事情。 ApplicationHelper 不应包含在模型中。最好的解决方案是:
class User < ActiveRecord::Base
INDUSTRIES = ['Agriculture','Food']
validates_inclusion_of :industries, :in => INDUSTRIES
end
module ApplicationHelper
def industries
User::INDUSTRIES
end
end
现在您已经以一种简单而漂亮的方式完成了。
EDIT
无论您在哪里需要访问您应该使用的行业:
User::INDUSTRIES
就是这样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)