0

我是铁轨上的新手。

在我的表单中,我得到类似“123,xxx_new item,132,xxx_test”的字符串

如果项目以“xxx_”开头而不是意味着我应该将项目添加到数据库,否则输入值

这是我的代码,我确信有更好的方法来编写此代码

tags = params[:station][:tag_ids].split(",")
    params[:station][:tag_ids] = []   
    tags.each do |tag|
      if tag[0,4]  =="xxx_" 

        params[:station][:tag_ids] << Tag.create(:name => tag.gsub('xxx_', '')).id

      else 

        params[:station][:tag_ids]<< tag   

      end
    end

我正在寻找如何改进我的代码语法

4

1 回答 1

0

关于什么:

tags = params[:station][:tag_ids].split(',')
params[:station][:tag_ids] = tags.each_with_object([]) do |tag, array|
  array << tag.start_with?('xxx_') ? Tag.create(name: tag[4..-1]).id : tag
end
于 2013-08-17T20:12:14.690 回答