我的复选框列不适用于 Netzke 中的关联?

My checkbox columns don't work for associations in Netzke?

我已经通过连接 table 建立了多对多关系,其组件类似于 boss_clerks 演示。 (我包括了一个人为的例子)。一切正常,除了关联 member__available 上的 CheckColumn 是 :boolean

在布尔值是模型属性而不是关联属性的网格上,检查列工作正常。但是,当我从关联中指定布尔值时,例如 member__available,则不会显示检查列。为了让 checkcolumn 工作,我手动指定了 xtype 和其他列配置。然后checkbox会从false更新为true,但是一旦为true就不会响应"unchecking",就卡在了true状态(现在保存在数据库中)。

extjs 4.2.0.663
netzke-核心 0.9.0
netzke-basepack 0.9.0
rails 3.2.11

谢谢!

class Member
  has_many :teams, :through => :team_members
  attr_acessible :available
end

class Team 
  has_many :members, :through => :team_mebers
end

class TeamMember
  belongs_to :team
  belongs_to :member
  attr_acessible :role
end

class TeamGrid 
    def configure(c)
        c.model = "Team"
    end
end

class TeamMemberGrid
    def configure(c)
        c.model = "TeamMember"
        c.columns = [
            :member__name,
            :member__specialty,
            { name: :member__available, editor: { xtype: :checkbox}, xtype: :checkcolumn, attr_type: :boolean },
            :role
        ]
    end
end

这应该很容易用虚拟属性解决,比如:

class TeamMember
  delegate :available, to: :member, allow_nil: true

  def available=(v)
    member && member.update_attribute(:available, v)
  end
end


class TeamMemberGrid
  def configure(c)
    c.model = "TeamMember"
    c.columns = [
      :member__name,
      :member__specialty,
      { name: :available, attr_type: :boolean, read_only: false },
      :role
    ]
  end
end

Netzke 默认将虚拟属性设置为只读,这就是您需要 read_only: false.

的原因