检查视图中的db值是否合适,而不是在控制器中? 现在我有这样的观点:
- @articles.each do |art|
-if art.QUANTITYM > 0
=art.PRICEM
%br
= art.PRICEM * @currency.currencyvalue
在我之前的rails 3.0.9项目(现为3.2.6)上,一切都很好,但现在它给了我:
未定义的方法`>'为零:NilClass
我在控制器中的方法看起来像这样:
def category
@type_details = Type.find_by_TYP_ID(params[:type])
@search_trees = SearchTree.find(:all, :include => [:designation], :conditions => { :STR_ID_PARENT => params[:cat]})
@strlookup = StrLookup.find(:all, :conditions => { :STL_STR_ID => params[:cat]})
@genart = GenericArticle.all(:conditions => { :GA_ID => @strlookup.map(&:STL_GA_ID)})
@type = params[:type]
@la_typs = LinkLaTyp.find(:all, :conditions => { :LAT_TYP_ID => params[:type], :LAT_GA_ID => @genart.map(&:GA_ID)})
data = "{ label : 1, children : [{label : 1},{label : 1}] }"
#puts JSON.pretty_generate(data)
if @genart.blank?
@articles = nil
else
@linkla = LinkArt.find(:all, :conditions => { :LA_ID => @la_typs.map(&:LAT_LA_ID), :LA_GA_ID => @genart.map(&:GA_ID)})
@pre_articles = Article.find(:all, :include => [:supplier], :conditions => {:ART_ID => @linkla.map(&:LA_ART_ID)}, :order => "SUPPLIERS.SUP_BRAND, ARTICLES.QUANTITYM asc")
@articles = Kaminari.paginate_array(@pre_articles).page(params[:page]).per(20)
end
@currency = Currency.find(:first)
#@cart = current_cart #NOTE THIS!!!
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @search_trees }
#format.json { render :json => @search_trees }
end
end
如何检查我的数据库数量并在视图中根据值显示价格?或者它是“犯罪”,我必须在控制器中这样做?比如何检查控制器并在视图中显示它?
请注意,这是非我的数据库,所以它非常庞大,并且包含很多表和数据。
答案 0 :(得分:1)
在视图中检查它没问题。您收到错误是因为art.QUANTITYM
是nil
。要防止出现此错误,您必须首先检查它是nil
,然后检查它是否大于零:
- if art.QUANTITYM.present? && art.QUANTITYM > 0