簡體   English   中英

RUby on rails如果語法混亂

[英]RUby on rails if else syntax confusion

在if if上遇到麻煩-我認為這是一個語法問題,但我似乎無法理解。 我使用了下面的建議,但仍然拋出500錯誤。 我不知道確切的錯誤,因為有一個自定義錯誤消息,並且“ a 500”是給出的唯一技術信息。 是否可以在開發人員端啟用調試模式,以提供其他信息?

我想做的是顯示下拉列表,如果您是“ DSD”,則可以選擇,否則應該禁用下拉列表,這就是為什么我需要IF語句的原因。

這是我正在運行的當前if語句:

更新

        <% 
           if (sign_on.acctypw1.strip =="DS") 
               select_tag(:distributor_number_X,  options_for_select(distributors_array), {:style => "width:400px", :disabled => "true"}) 
           else (sign_on.acctypw1.strip =="DSD")               
               select_tag(:distributor_number_X, options_for_select(distributors_array), {:style => "width:400px" })
           end
        %>

這是服務器日志中的錯誤:

[Mon Mar 25 09:33:41 2013] [notice] caught SIGTERM, shutting down
[ pid=8710 thr=77929640 file=utils.rb:176 time=2013-03-25 09:33:42.922 ]: *** Exception SignalException in PhusionPassenger::ClassicRails::ApplicationSpawner (SIGTERM) (process 8710, thread #<Thread:0x94a3950>):
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server.rb:343:in `select'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server.rb:343:in `server_main_loop'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server.rb:180:in `start'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/spawn_manager.rb:219:in `block (2 levels) in spawn_rails_application'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/spawn_manager.rb:214:in `block in spawn_rails_application'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
from <internal:prelude>:10:in `synchronize'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/passenger-3.0.1/helper-scripts/passenger-spawn-server:99:in `<main>'
[Mon Mar 25 09:35:50 2013] [notice] Apache/2.2.14 (Ubuntu) Phusion_Passenger/3.0.1 configured -- resuming normal operations
 [Mon Mar 25 10:03:31 2013] [notice] caught SIGTERM, shutting down
 [Mon Mar 25 10:03:47 2013] [notice] Apache/2.2.14 (Ubuntu) Phusion_Passenger/3.0.1 configured -- resuming normal operations

我認為這在您看來(erb.html文件)您的if和else語句也必須放在<% %>

<% if sign_on.acctypw1.strip =="DS" %>
  <%= select_tag(:distributor_number_X, options_for_select(distributors_array), {:style => "width:400px", :disabled => "true"}) %>
<% else sign_on.acctypw1.strip =="DSD" %>             
  <%= select_tag(:distributor_number_X, options_for_select(distributors_array), {:style => "width:400px" })  %>
<% end %>

另外,請記住

<% "This will be evaluated" %>
<%= "This will be evaluated and outputted to your view" %>

您要使用elsif而不是其他。

您還需要將if/elsif/end包裝在<% %>標記中,因為這是ERB

<%= 
   if (sign_on.acctypw1.strip =="DS") 
       select_tag(:distributor_number_X,  options_for_select(distributors_array), {:style => "width:400px", :disabled => "true"}) 
   else (sign_on.acctypw1.strip =="DSD")               
       select_tag(:distributor_number_X, options_for_select(distributors_array), {:style => "width:400px" })
   end
%>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM