如何从视图助手中的模型调用类方法。基本上,视图显示基于传递给操作的类型ID列表的搜索结果。但是在视图而不是搜索ID上,我想显示这些产品的描述而不是ID。
用户从视图上的选择框中选择产品ID - >控制器动作选择具有该产品ID的订单 - >结果视图具有订单详细信息,但在屏幕顶部,必须从具有id和描述的查找表中显示产品描述。 现在,当我尝试使用辅助方法访问产品描述时,我得到了一个
未初始化的常量DownloadHelper :: MetaProductType异常。
我知道我们可以在模型中调用helper方法但是如何在helper中调用模型方法?
产品型号为
class MetaProductType < ActiveRecord::Base
def self.get_product_type_description type_list
where('lower(product_type) in (?)', type_list).select('product_description')
end
end
辅助方法是:
module DownloadHelper
def print_hash(hash)
return_str = ''
return return_str if hash.nil?
hash.each_pair do |key, value|
key_arr = key.split('_')
return_str = return_str + key_arr.join(' ').capitalize
return_str = return_str + ' : '
if key.downcase.include? 'product'
#print product type descriptions
arr = value.split(',')
value = MetaProductType.get_product_type_description value
end
return_str = return_str + '<br />'
return_str.gsub!(/\w+/){$&.capitalize}
end
return (return_str)
end
答案 0 :(得分:0)
打算写评论,但这里会更容易:
<强>语法强>
可能是错的,但我认为问题在于你的passing of arguments类方法
为什么不试试这个:
#app/models/meta_product_type.rb
class MetaProductType < ActiveRecord::Base
def self.get_product_type_description(type_list)
where('lower(product_type) in (?)', type_list).select('product_description')
end
end
#app/helpers/download_helper.rb
value = MetaProductType.get_product_type_description(value)
另一个问题可能是您自助引用助手中的value
var?为什么不重命名它,所以你没有使用相同的变量