Rails基于动态范围名称列表的模型范围链接

时间:2017-10-12 04:02:23

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

我们说我有一些模特

class MyModel < ApplicationRecord
  scope :opened, -> { where(status: 'open') }
  scope :closed, -> { where(status: 'closed') }
  scope :colored, -> { where.not(color: nil) }
  # etc
end

我可以调用范围链,如

MyModel.opened.colored
MyModel.send('opened').send('colored')

但是如何根据动态范围令牌列表进行范围链接?我的意思是

scopes = ['opened', 'colored', ...]

列表可能很长,我需要一些通用的解决方案,尽可能简单,例如MyModel.send_list(scopes)

1 个答案:

答案 0 :(得分:4)

作为范围的结果,您可以添加like,

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

发送此内容,如scope :send_list, -> (*scopes) { scopes.inject(self) { |out, scope| out.send(scope) } }