我看过这两个SO讨论,但它不适合我
1)Creating multiple records at once from comma seperated IDs
2)How to accept comma-delimited list to build tags for model?
我正在尝试从表单中获取单个字符串,并创建多个以逗号分隔的活动记录条目
形式:
<%= form_for @tag, html: {:class => "form-horizontal" } do |f| %>
<fieldset>
<div class="form-group">
<%= f.label :tagname, "Tag Name", :class => "col-lg-3 control-label" %>
<%= f.text_field :tagname, :class => "form-control" %>
</div>
<div class="form-group">
<%= f.submit class: 'btn btn-primary' %>
</div>
<%= link_to 'Back', tags_path %> |
<%= link_to 'Home', :userroot %>
</fieldset>
<% end %>
控制器:
def create
@tag = params[:tagname].split(/,\s*/)
@tag.each do |t|
newtag = Tag.new(:tagname => t)
newtag.save
end
redirect_to tags_path
end
错误:
NoMethodError in TagsController#create
undefined method `split' for nil:NilClass
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"RwjDJ9WQD6nJ51AymbSBubcmDbzDNTYWot0nP1FPV04=",
"tag"=>{"tagname"=>"a new tag, two tag, three tag"},
"commit"=>"Create Tag"}
答案 0 :(得分:4)
params[:tag][:tagname]
请务必检查字符串是否为空,否则您无法期待用户的完美行为。
GL&amp; HF。