首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Squeel语句中使用动态属性/列?

如何在Squeel语句中使用动态属性/列?
EN

Stack Overflow用户
提问于 2012-09-27 01:40:54
回答 1查看 584关注 0票数 1

在我的previous issue中,我最后发现以下代码似乎像预期的那样工作:

代码语言:javascript
复制
def my_squeel_query
  table_name = Squeel::Nodes::Stub.new("#{self.class.to_s.tableize}_comment_associations".to_sym)

  commenters.
    .where{
      table_name.article_id.eq(my{self.id})
    }
end

是否可以使article_id 语句与为 table_name 变量所做的动态语句相同?

也就是说,我想做一些如下的事情:

代码语言:javascript
复制
def my_squeel_query
  table_name = Squeel::Nodes::Stub.new("#{self.class.to_s.tableize}_comment_associations".to_sym)

  commenters.
    .where{
      table_name.<DYNAMIC_KEY>.eq(my{self.id}) # '<DYNAMIC_KEY>' refers to a column name present in the 'commenters' database table.
    }
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-27 01:43:07

您可以使用send

代码语言:javascript
复制
column_name = :article_id
commenters.where{
  table_name.send(column_name).eq(my{self.id})
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12612889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档