【问题标题】:Rails WiceGrid with multiples attributes in the same columnRails WiceGrid 在同一列中具有多个属性
【发布时间】:2015-06-09 02:01:38
【问题描述】:

我的项目有 2 列用于表用户,“first_name”和“last_name”,我只想在 1 列中显示它们,并使用 1 个字段来过滤它(全名)。 我有类似的东西:

g.column name: 'First Name', attribute: 'first_name' do |user|
    user.first_name
end

g.column name: 'Last Name', attribute: 'last_name' do |user|
    user.last_name
end 

我想做这样的事情:

g.column name: 'Full Name', filter: proc{ |q| where("first_name LIKE :query OR last_name LIKE :query", query: "%#{q}%") } do |user|
    user.first_name + ' ' + user.first_name
end

这可能吗?

如果是,我应该怎么做才能像这样自定义过滤器?

谢谢。

【问题讨论】:

  • 您能否在您的用户模型上为full name 创建一个返回first_name + ' ' + last_name 的方法?
  • 我试过了,但 WiceGird 似乎独立于 ActiveRecord 读取字段,所以它不起作用。谢谢。
  • 你可以有一个由数据库触发器或回调更新的全名属性。
  • 你能举个例子吗?谢谢。

标签: ruby-on-rails filter attributes wice-grid


【解决方案1】:

我认为这还不可能。

WiceGrid 的创建者说:

不幸的是,这是不可能的,但有一个简单的解决方法,我多次实施:我再创建一个列名,并在 before_save 中填充它

在此处查看所有 cmets:

https://github.com/leikind/wice_grid/issues/225

【讨论】:

    【解决方案2】:
    g.column name: 'links' do |product|
      buffer = link_to "Show", show_product_path
      buffer += ' '
      buffer = link_to "Edit", edit_product_path
      raw buffer
    end
    

    【讨论】:

    • 我的意思是关于过滤器filter: proc{ |q| where("first_name LIKE :query OR last_name LIKE :query", query: "%#{q}%") }
    猜你喜欢
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2018-08-05
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多