Rails从DB中的text_area插入每一行

时间:2013-09-26 14:16:08

标签: ruby-on-rails database forms

在我的rails应用程序中,我有一个text_field,在按下按钮后将字符串值插入到数据库中。但是我想用text_area替换text_field并将每一行作为新记录插入到我的DB中。我使用的是simple_form。

_form
<%= simple_form_for @keyword do |f|%>
<%=f.input :name%>
<%=f.button :submit%>
<%end%>

controller
@keyword = Keyword.new(keyword_params)
 if @keyword.save
 redirect_to :back
end

我几乎知道自己要做什么,但是在哪里必须将列表解析为控制器或模型?

谢谢。

2 个答案:

答案 0 :(得分:1)

换行符由字符串上的\n表示。知道了这一点,在控制器上你可以获得text_area参数,比如params[:text_area],并使用String#split方法根据换行符的数量将此String转换为n个位置的数组。

string_array = params[:text_area].split("\n")
# do your stuff with the array of strings

答案 1 :(得分:0)

为了解决这个问题,我做了这个:

 keyword_array = keyword_params[:name].split("\r\n")

 def keyword_params
    params.require(:keyword).permit(:name)
 end