Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails—如何在文本字段中执行If和else语句_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails—如何在文本字段中执行If和else语句

Ruby on rails Rails—如何在文本字段中执行If和else语句,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我试图在此文本字段中使用以下值执行if和else语句: <%= f.text_field :rating, :size => 1, :min => 1, :max => 6, :value => if vind.ratings == 0 else vind.rating_score/vind.ratings, :type => 'range', :step => '1', :id => "#{vind.id}" %> 我通常使用速记,如下所

我试图在此文本字段中使用以下值执行if和else语句:

<%= f.text_field :rating, :size => 1, :min => 1, :max => 6, :value => if vind.ratings == 0 else vind.rating_score/vind.ratings, :type => 'range', :step => '1', :id => "#{vind.id}" %>

我通常使用速记,如下所示:

:value => ( vind.ratings == 0 ? 0 : vind.rating_score/vind.ratings )
<%= f.text_field :rating, :size => 1, :min => 1, :max => 6, :value => "#{if vind.ratings == 0 else vind.rating_score/vind.ratings, :type => 'range', :step => '1', :id => "#{vind.id}" %>

我通常使用速记,如下所示:

:value => ( vind.ratings == 0 ? 0 : vind.rating_score/vind.ratings )
<%= f.text_field :rating, :size => 1, :min => 1, :max => 6, :value => "#{if vind.ratings == 0 else vind.rating_score/vind.ratings, :type => 'range', :step => '1', :id => "#{vind.id}" %>
我可以这样做:

:value => ( vind.ratings == 0 ? 0 : vind.rating_score/vind.ratings )
<%= f.text_field :rating, :size => 1, :min => 1, :max => 6, :value => "#{if vind.ratings == 0 else vind.rating_score/vind.ratings, :type => 'range', :step => '1', :id => "#{vind.id}" %>
1,:min=>1,:max=>6,:value=>
或与上面类似,但在()中:

1,:min=>1,:max=>6,:value=>((vind.ratings==0)?value_此处:vind.rating_score/vind.ratings),:type=>‘range’,:step=>‘1’,:id=>“#{vind.id}”%>
我可以这样做:

:value => ( vind.ratings == 0 ? 0 : vind.rating_score/vind.ratings )
<%= f.text_field :rating, :size => 1, :min => 1, :max => 6, :value => "#{if vind.ratings == 0 else vind.rating_score/vind.ratings, :type => 'range', :step => '1', :id => "#{vind.id}" %>
1,:min=>1,:max=>6,:value=>
或与上面类似,但在()中:

1,:min=>1,:max=>6,:value=>((vind.ratings==0)?value_此处:vind.rating_score/vind.ratings),:type=>‘range’,:step=>‘1’,:id=>“#{vind.id}”%>

这是ruby代码,但ruby也可以在rails中工作。rails是在ruby上构建的。为什么我不能在vind.ratings==0或者:value=>“#{}”?@tzown你不能写它,因为它不是有效的ruby代码。首先,你的逻辑是错误的。你在声明vid.ratings==0{do\u nothing}else show vind.ratings。你不能在ruby中做任何事情。这是无效的代码。如果vind.ratings>0,你就必须这样做,然后显示vind.ratings。@tzown,作为将来的参考,我使用的是三元运算符。这是ruby代码,但ruby也可以在rails中工作。rails是在ruby上构建的。如果vind.ratings==0,为什么我不能写:value=>“#{}”@tzown您不能编写它,因为它不是有效的ruby代码。首先,您的逻辑是错误的。您正在声明vid.ratings==0{do\u nothing}else显示vind.ratings。在ruby中不能执行任何操作。这是无效代码。如果vind.ratings>0,则必须执行此操作,然后显示vind.ratings。@tzown,为了将来的参考,我使用的是三元运算符。