在Rails中,如何从模型中判断请求是通过命名空间API控制器还是常规控制器来实现的?

时间:2016-09-19 19:19:25

标签: ruby-on-rails activerecord model api-design

我有一个带有命名空间API的Rails应用程序和匹配的常规控制器。

两套控制器当然都使用相同的型号。例如,API :: CouponController和CouponController都使用优惠券模型。

我们首先在Web方面构建功能,并且需要在模型中使用一些条件逻辑来判断请求是来自API还是来自常规控制器,因此我们可以将模型逻辑分成两部分。我怎么能这样做?

或者有没有办法为每对控制器使用不同的模型,但指向同一个表?

1 个答案:

答案 0 :(得分:-2)

试试这个,我列出了一个可能有帮助的例子

sum(f_1(z_i, m_1, m_2, s_1, s_2)) = 0
sum(f_2(z_i, m_1, m_2, s_1, s_2)) = 0
sum(f_3(z_i, m_1, m_2, s_1, s_2)) = 0
sum(f_4(z_i, m_1, m_2, s_1, s_2)) = 0

检查test_method中的控制器和操作

app/controllers/api/coupon_controller.rb

class Api::CouponController < Api::ApiController
  def index
    Coupon.test_method(params)
  end
end

app/controllers/coupon_controller.rb

class CouponController < ApplicationController
  def index
    Coupon.test_method(params)
  end
end

app/models/coupon.rb
class Coupon
  def self.test_method(params)
    return "You can check your controller and action using params"
  end
end