4

我对 RoR 比较陌生。我在haml中得到了以下来源

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

但是 :state 字段并不是完全可选的,只有当用户是非美国用户时它才是可选的,如果他/她的国家/地区=='USA',则该字段必须成为必需的。

4

1 回答 1

2

为什么不尝试,

在你的情况下,

HAML 是基于缩进的,解析器可能很棘手。您不需要在 Haml 中使用“-end”。改用缩进。在 Haml 中,只要在 Ruby 评估命令后缩进增加,就会开始一个块。它在缩进减少时结束。示例 if 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'

如果你想使用justIF条件,

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

在普通的 ruby​​ 格式代码中,

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