【发布时间】:2011-01-27 15:09:03
【问题描述】:
我一直在构建一个竞赛应用程序,我可以很容易地看出我在控制器中放入了太多的逻辑。我怎样才能将这种类型的逻辑切换到模型? (这里重要的不是逻辑本身——它远未完成——我只是想了解如何将它移出控制器)。
控制器:
def create
@person = Person.new(params[:person])
@yournum = rand(100)
@day = Day.find_by_id(1)
@prereg = Prereg.find_by_email(@person.email)
if @preg != nil
@person.last_name = @prereg.name
end
if @day.number == 1
if @yournum <= 25
@person.prize_id = 2
elsif @yournum > 25 && @yournum <=50
@person.prize_id = 1
elsif @yournum > 51 && @yournum <=75
@person.prize_id = 3
elsif @yournum > 76 && @yournum <=100
@person.prize_id = 4
end
elsif @day.number == 2
if @yournum <= 25
@person.prize_id = 2
elsif @yournum > 25 && @yournum <=50
@person.prize_id = 1
elsif @yournum > 51 && @yournum <=75
@person.prize_id = 3
elsif @yournum > 76 && @yournum <=100
@person.prize_id = 4
end
elsif @day.number == 3
if @yournum <= 50
@person.prize_id = 2
elsif @yournum > 51 && @yournum <=90
@person.prize_id = 1
elsif @yournum > 91 && @yournum <= 95
@person.prize_id = 3
elsif @yournum > 96 && @yournum <=100
@person.prize_id = 4
end
end
@person.save
redirect_to @person
end
型号:
class Person < ActiveRecord::Base
belongs_to :prize
end
谢谢!
艾略特
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3