Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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:带有条件必填字段的表单_Ruby On Rails_Forms_Haml - Fatal编程技术网

Ruby on rails Rails:带有条件必填字段的表单

Ruby on rails Rails:带有条件必填字段的表单,ruby-on-rails,forms,haml,Ruby On Rails,Forms,Haml,我对RoR比较陌生。我在haml得到了以下消息来源 = form.text_field :country, 'Country' = form.text_field :state, 'State', :placeholder => 'optional' 但是:state字段并不完全是可选的,只有当用户是非美国用户时才是可选的,如果他/她的国家==“USA”,则该字段必须为必填字段。为什么不尝试 就你而言 HAML是基于缩进的,解析器可能比较复杂。您不需要在HAML中使用“-end”。改为使

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

= form.text_field :country, 'Country'
= form.text_field :state, 'State', :placeholder => 'optional'
但是:state字段并不完全是可选的,只有当用户是非美国用户时才是可选的,如果他/她的国家==“USA”,则该字段必须为必填字段。

为什么不尝试

就你而言

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'
如果只想使用
If
条件

- 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 %>
#将@country变量更改为您的国家值变量
'必填项'%>
'可选'>
以上只是一个例子来说明这一点。。因为我不知道存储在哪个变量中的国家值