2013-08-17 61 views
0

我是軌道上的新手。寫更簡單的導軌代碼更好

在我的形式我得到這樣的字符串「123,xxx_new項目,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 

我在尋找如何提高我的代碼的語法更好的辦法

回答

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