Могу ли я улучшить это действие контроллера? - PullRequest
0 голосов
/ 02 марта 2012

Это действие нормально?Можно ли это улучшить каким-либо образом?Должен ли я извлечь настройку заказа в частный метод и просто вызвать его?Или это нормально и соответствует «рельсовому пути»?

def create
  @order = Order.new(params[:order])
  @product = Product.find(session[:product])
  @order.amount = session[:total_amount]
  @order.ip_address = request.remote_ip
  @order.product_id = @product.id
  @order.product_price = @product.price
  @order.voucher = @voucher_value
  @order.friend_id = session[:friend_id]
  if @order.save
    if @order.purchase
      render :action => "success"
      reset_friend_session_codes
    else
      render :action => "failure"
    end
  else
    render :action => 'new'
  end
end

TIA.

1 Ответ

0 голосов
/ 02 марта 2012

Я бы выделил как можно больше в частный метод в модели заказа и вызвал бы его с помощью одного из хуков модели, например before_validation.Это слишком много логики для действия и попирает всю MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...