0

レコードが見つからない場合にデフォルトのメッセージが表示されるように、ifステートメントを作成しようとしています。私は現在これを持っています:

- if @n == nil || @n ==""
  welcome
- else
  - @n.each do |n|      
    = n.name
    = raw " - "
    = n.company

ただし、最初の行は無視され、必要に応じてレコードが表示されます。

4

4 に答える 4

2
    - if @n.blank?
      welcome
    - else
      - @n.each do |n|      
        = n.name
        = raw " - "
        = n.company
于 2013-01-09T14:37:36.420 に答える
1

インスタンス変数に空白を照会してみますか?:

- if @n.blank?
于 2013-01-09T14:37:23.423 に答える
0

@nは文字列ではなくオブジェクトの配列であると想定されているので、空かどうかを確認する必要があります。

if @n == nil || @n == []

レール(したがってactivesupport)を使用している場合は、.blank?(他の人から提案された)これらすべてのケースで機能します

nil.blank? #=> true
"".blank? #=> true
[].blank? #=> true 
于 2013-01-09T14:56:58.593 に答える
0

メソッドの場合

if @object.blank?
 #whatever you want to happen
else
 #whatever you want to happen

ブロック内であれば

<% if @object.blank? %><%= #foo %>
<% else %>
<%= #bar %>
<% end %>
于 2013-01-09T14:39:24.933 に答える