【发布时间】:2014-04-15 08:58:19
【问题描述】:
在我的控制器中,我正在获取用户的所有关联@highinterest 帐户,并且我正在添加 value 列的总和:
@dohighinterest = Account.where(user_id: current_user, accounttype: 'Savings', name: ['GE Capital Bank', 'Barclays', 'CIT Bank', 'Bank5 Connect', 'Ally Bank', 'Discover', 'First Choice Bank', 'FNBO Direct', 'Mutual of Omaha', 'Sallie Mae Bank', 'American Express Bank', 'Capital One 360'])
@highinterest = @dohighinterest.sum(&:value)
稍后在控制器中,我将定义变量,以便视图知道要呈现哪个类。
if @highinterest > (@rechighinterest * 0.8) && (@highinterest < (@rechighinterest * 1.2))
@highrec = "pass"
elsif @highinterest > (@rechighinterest * 0.6) && (@highinterest < (@rechighinterest * 1.4))
@highrec = "okay"
else
@highrec = "fail"
end
这是视图:
<div class="rollup <%= @highrec %>">
<p>You're gaining interest on</p>
<div class="percentage">
$<%= number_with_delimiter(@highinterest, :delimiter => ',') %>
</div>
</div>
另外,如果@highrec = "fail" 和@highinterest = 0,我想在视图中渲染一个部分。
将该逻辑放入控制器和视图的最佳做法是什么?如果满足该条件,我尝试在控制器 @rectext = true 中定义一个新变量。然后在视图中,我包装了对 的部分引用,但这并没有返回任何内容。
【问题讨论】:
-
你的意思是
@rectext == true是测试一个布尔值而不是你写的赋值运算符=? -
还要确保删除 if 语句的嵌入式 ruby 代码中的等号(
<% if @rectext = true %>而不是<%= if @rectext = true %>)。<%= some_ruby %>显示其中任何内容的输出。
标签: ruby-on-rails ruby ruby-on-rails-4