2012-02-17 11 views
0

Rubyで少し再生します。Rubyの変数

今私は解決できない小さな問題があります。

コード:

@href = "http://localhost:3000" 

def link(title, href) 

    if href.nil? 
    href = @href 
    else 
    href = href 
    end 

    output = "<a href=\"#{href}\">" 
    output << "#{title}" 
    output << "</a>" 

    puts output 

end 

alias link_to link 

link_to("Google","") 

いただきました私のコードに問題が? nrefであれば、hrefのデフォルト値を設定します。

挨拶し、

ピーター

答えて

1

問題は、あなたが条件として.nil? or .empty?を使用する必要があり、ここで

>> "".nil? 
=> false 

です。

>> "".empty? 
=> true 
+0

あなたは両方の条件をすれば、これらの両方が動作します: 'のlink_to(」 Google "、nil); link_to(" Google "、" ") – farnoy

+0

クール。それはそうだ – pkberlin

1

""!=

[10] pry(main)> link "xxx",nil 
<a href="http://localhost:3000">xxx</a> 
=> nil 
2

nilをここでデフォルトを設定するには、クリーンな方法です:

def link(title, href = 'http://localhost:3000') 
    # ... 
end