gpt4 book ai didi

ruby-on-rails - 动态 `named_scope` 取决于某些标准

转载 作者:行者123 更新时间:2023-12-04 03:45:29 25 4
gpt4 key购买 nike

亲爱的,我有一个 Student 模型,我在其中指定了一些 name_scope,例如from_programfrom_yearfrom_schoolhas_statusfrom_course 等...

我是否可以在运行时根据特定条件动态地将不同的 named_scope 链接在一起?

例如,如果访问数据的用户来自财务部门,我希望能够将 from_schoolhas_status 链接在一起。如果用户是讲师,我希望能够将 from_coursefrom_school 链接在一起,等等...

我应该使用 named_scope 吗?或者我应该回到指定条件的好旧方法?

提前感谢您的建议! =) 顺便说一句,我正在使用 Rails 2.3

最佳答案

我不确定,如果我理解,但我认为你可以这样做:

class Student

named_scope from_program, lambda{|program| :conditions => {:program => program}}
named_scope from_year, lambda{|year| :conditions => {:year => year}}
named_scope has_status, lambda{|status| :conditions => {:status => status}}

def self.from_finance(school, status)
self.from_school(school).has_status(status)
end

end

或更一般的

def self.get_students(params)
scope = self
[:program, :year, :school, :course].each do |s|
scope = scope.send("from_#{s}", params[s]) if params[s].present?
end
scope = scope.has_status(params[:status]) if params[:status].present?
scope
end

关于ruby-on-rails - 动态 `named_scope` 取决于某些标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com