Railsコンソールで app["rating"] == 0 であることを確認しました。これを考慮して、特定のテキストを出力する if/else ステートメントを作成しようとしていますが、そうするのに問題があります。
何かアドバイス?
<% if <%= app["rating"] %> == 0 %>
no rating
<% end %>
Railsコンソールで app["rating"] == 0 であることを確認しました。これを考慮して、特定のテキストを出力する if/else ステートメントを作成しようとしていますが、そうするのに問題があります。
何かアドバイス?
<% if <%= app["rating"] %> == 0 %>
no rating
<% end %>
ERB テンプレートを使用している場合は、次のことを行う必要があります。
<% if app["rating"] == 0 %>
no rating
<% end %>
テンプレート宣言をそのようにネストする理由がわかりません。
内部<% ... %>
はすべて、文字通りの Ruby コードとして評価されることに注意してください。その評価結果を表示したい場合は、 を使用して<%= ... %>
ください。そこには Ruby 以外のコードが含まれif
ているため、その部分を表示または非表示にする効果があります。
<%
との間のすべて%>
が補間されるので、
<% if app["rating"] == 0 %>
html content
<% end %>
<% %>
if ステートメント内でerb タグをネストする必要はありません。例えば:
<% if app["rating"] == 0 %>
no raiting
<% end %>
ただし、条件付きロジックをビューに配置すると、MVC が描画する線がぼやけます。プレゼンターやDSLSに関する議論に飛び込むことなく、これを処理する最も簡単な方法は、ヘルパー メソッドを追加することです。
これがと呼ばれるコントローラーにあると仮定するとapps_controller.rb
、フォルダーapps_helper.rb
内にあります。/app/helpers
次のようなヘルパー メソッドを作成できます。
def display_rating(rating)
rating = "No Rating" if rating == 0
concat(rating)
end
次に、ビューで次を使用してこのヘルパーを使用できます<%= display_rating(app["rating"]) %>
ERB を使用していると仮定すると、if/else
ステートメントを実行するには、次のようにします。
<%if app["rating"] == 0 %>
No Rating
<%elsif app["rating"] == 10 %>
rating 10
<%elsif app["rating"] == 20 %>
rating 20
etc...
<% end %>