2013-03-06 26 views
3

我對RoR比較陌生。我有以下來源HAMLRails:有條件需求字段的形式

= form.text_field :country, 'Country' 
= form.text_field :state, 'State', :placeholder => 'optional' 

但:申請狀態是不完全可選的,它是隻有當用戶的非美國用戶,可選的,如果他/她的國家==「USA」,該場必須成爲必需。

回答

1

爲什麼不嘗試,

在你的情況,

HAML是基於壓痕,解析器可以tricky.You不需要使用 - 在Haml的「結束」。而不是使用縮進。在Haml中,只要在Ruby評估命令後增加縮進,就會開始一個塊。當縮進縮小時結束。如果其他塊如下所示。

- if country != 'USA' # change country variable to your country value variable 
    = form.text_field :state, 'State', :placeholder => 'optional' 
- else 
    = form.text_field :state, 'State', :placeholder => 'Mandatory' 

如果你想只使用IF條件,

- if country != 'USA' # change country variable to your country value variable 
    = form.text_field :state, 'State', :placeholder => 'optional' 

在正常紅寶石形式的代碼,

<% if @country == 'USA' %> # change @country variable to your country value variable 
    <%= form.text_field :state, 'State', :placeholder => 'Mandatory' %> 
<% else %> 
    <%= form.text_field :state, 'State', :placeholder => 'optional' %> 
<% end %> 

以上只是一個例子,明白我的意思..因爲我不知道存儲在哪個變量中的國家值。