这是我的问题:
一切正常但我的显示器类似于[" 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中的一个字符串。
答案 0 :(得分:0)
只需在结果中添加以下行
即可'["1", "2", "3"]'.split("[").pop().split("]").first.tr!('"', '')
不是最好的方式,但会对你有用
另一个解决方案是
'["1", "2", "3"]'.reverse.chop.reverse.chop.tr!('""', '')