在我控制器,我得到一个用户的所有相关@highinterest账户的,而且我把数值列的总和:Rails的最佳做法显示出部分,如果条件为真
@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 = “失败” 和@highinterest = 0。
将该逻辑放入控制器和视图的最佳做法是什么?我试图在控制器@rectext = true中定义一个新变量,如果它满足该条件的话。然后在视图中,我将部分引用包含为<%= if @rectext = true%>,但那不会返回任何内容。
您的意思是'@rectext == TRUE'这是检验一个布尔值,而不是赋值运算符'='你写的吗? –
还要确保为if语句('<%if @rectext = true%>'而不是'<%= if @rectext = true%>')移除嵌入式ruby代码中的等号。 '<%= some_ruby%>'显示它内部的输出。 – mralexlau