4

私はRoRに比較的慣れていません。私はhamlで次のソースを入手しました

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

ただし、:state filedは完全にオプションではなく、ユーザーが米国以外のユーザーである場合にのみオプションです。彼/彼女の国=='USA'の場合、フィールドは必須になる必要があります。

4

1 に答える 1

2

やってみませんか

あなたの場合、

HAMLはインデントベースであり、パーサーは扱いにくい場合があります。Hamlで「-end」を使用する必要はありません。代わりにインデントを使用してください。Hamlでは、Ruby評価コマンドの後にインデントを増やすとブロックが始まります。インデントが減少すると終了します。elseが次のようにブロックする場合のサンプル。

- 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 %>

上記は、アイデアを得るための単なる例です。どの変数に格納されている国の値については知らなかったためです。

于 2013-03-06T11:49:05.253 に答える