在Rails 5中使用differente变量名运行代码块两次

时间:2018-01-18 18:20:05

标签: ruby-on-rails ruby-on-rails-5

我的Rails 5应用程序中有一个代码块,我需要运行两次,但每次都有一个不同的变量:

if params[:origin]
  ride.waypoints.new(params[:origin].permit(:zip, :street, :number, :district, :city, :state))
end

if params[:destination]
  ride.waypoints.new(params[:destination].permit(:zip, :street, :number, :district, :city, :state))
end

正如你所看到的那样,两次完全相同的代码,但一旦我使用了原点和一次目的地。是否有一种优雅的方法来缩短这一点,所以我不必拥有几乎重复的代码?

1 个答案:

答案 0 :(得分:1)

如下:

[:origin, :destination].each do |key|
  ride.waypoints.new(params[key].permit(:zip, :street, :number, :district, :city, :state)) if params[key]
end