更好地编写简单的rails代码

时间:2013-08-17 19:50:26

标签: ruby-on-rails syntax

我是铁轨上的新手。

在我的表格中,我得到的字符串如“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

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

1 个答案:

答案 0 :(得分: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