Rails IF语句不起作用

时间:2014-01-07 23:06:33

标签: ruby-on-rails ruby

我试图根据数据库中的某些字段有条件地显示链接,但是,根据IF语句设置的链接都没有,并且无论如何链接都在显示。

<% if :mobile.present? && :mobile_verified != true %>
    <%= link_to "(Verify Mobile)", :controller => 'users', :action => 'resend_verification', :method=> :post %>
<% end %>

有什么不对吗?

2 个答案:

答案 0 :(得分:1)

这些是符号,而不是变量。您可能想要删除:。也许你的意思是用@作为前缀,如果它们是实例变量就是这种情况。

答案 1 :(得分:1)

当您使用:时,它会声明ruby symbol。当变量以符号@开头时表示它们是instance variables

在一般情况下,我们在控制器中定义实例变量,然后在视图文件中使用它们。所以我想你的代码应该是这样的:

<% if @mobile.present? && @mobile_verified != true %>
    <%= link_to "(Verify Mobile)", :controller => 'users', :action => 'resend_verification', :method=> :post %>
<% end %>

在上面的代码中使用它们之前,请不要忘记设置这些变量@mobile@mobile_verified