在我控制器,我得到一個用戶的所有相關@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