输入标签需要Rails条件?

时间:2017-01-05 19:43:48

标签: ruby-on-rails erb

我正在制作一个表单,其中一个问题类型是肯定/否定问题。如果用户选择" no",则需要填写一个文本框,说明他们选择否的原因。如果用户选择“否”,我想使文本框成为必需,但如果用户选择“是”,则不需要。这就是我的代码看起来像

<% @questions.each_with_index do |question, index| %>
  ...

  <div class="radio-button">
    <%= radio_button_tag("questions[#{question.id}][answer][name]", "yes", false, required: true) %>
    <%= label_tag("questions[#{question.id}][answer][name]_yes", "Yes") %>
  </div>
  <div class="radio-button">
    <%= radio_button_tag("questions[#{question.id}][answer][name]", "no", false, required: true) %>
    <%= label_tag("questions[#{question.id}][answer][name]_no", "No") %>
  </div>
  <div class="explanation">
    <%= label_tag("questions[#{question.id}][answer][explanation]", "If no, please explain why.") %>
    <div>
      <%= text_area_tag("questions[#{question.id}][answer][explanation]", nil, size: "50x8", title: "question-#{index + 1}-text") %>
    </div>
  </div>
<% end %>

如果用户选择了no单选按钮,如何在用户选择yes时不需要最后一个text_area_tag?我想我将不得不添加一些

的内容
<%= text_area_tag(..., required: ([condition] ? true : false) %>

但我不确定如何写这个条件。是否可以定位单选按钮并查看是否已选中?谢谢!

2 个答案:

答案 0 :(得分:0)

这完全取决于条件是什么

我认为条件是参数的一部分

<% if params['something'] == 'true' %>

  <%= text_area_tag(...) %>

<% else %>

  <%= text_area_tag(..., required: params['something']) %>

<% else %>

我希望这有助于

答案 1 :(得分:0)

尝试

<%= text_area_tag(..., ([condition] ? {required: true} : {})) %>