2013-08-17 3 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 
Смежные вопросы