2012-02-17 25 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","") 

什么在我的代码的问题? 我想为href设置一个默认值,如果它是零。

映入眼帘,

彼得

回答

1

的问题是在这里

>> "".nil? 
=> false 

您应该使用.nil? or .empty?作为条件。

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

如果你做两个条件,这两个都可以工作:'的link_to(” Google“,无); link_to(”Google“,”“)' – farnoy 2012-02-17 18:47:30

+0

酷。那是修复 – pkberlin 2012-02-17 18:54:54

1

“”!=零

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

这里的设置默认的清洁方式:

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