使用rails显示数组结果

时间:2016-05-09 06:51:33

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

这是我的问题:

一切正常但我的显示器类似于[" 1"," 2"," 3"]。我想1 2 3.我尝试了所有to_函数,但这并没有改变..

感谢您的时间。

model.rb:

validates :check, presence: true
validate :check_must_be_3

  private
    def checks_must_be_3
      if !check != 3
        errors[:base] << "You must select exactly 3 checks"
      end
    end

HTML:

<%= simple_form_for @answer do |f| %>
  <h3>Choose 3 answers</h3>
    <ul>
    <% (1..5).each do |x| %>
      <div class="checkbox">
        <label>
          <input type="checkbox" name="answer[check][]" id="optionsCheckbox<%= x %>" value="<%= x %>" />
          <%= x %>
        </label>
      </div>
    <% end %>
    <%= f.button :submit, "Submit", class: "btn btn-primary" %>
<% end %>

控制器:

private

def answer_params
    params.require(:answer).permit(check:[])
end

answer是db中的一个字符串。

1 个答案:

答案 0 :(得分:0)

只需在结果中添加以下行

即可
'["1", "2", "3"]'.split("[").pop().split("]").first.tr!('"', '')

不是最好的方式,但会对你有用

另一个解决方案是

 '["1", "2", "3"]'.reverse.chop.reverse.chop.tr!('""', '')