我通过连接表设置了多对多关系,其组件类似于boss_clerks演示。 (我已经包含了一个人为的例子)。一切都有效,除了关联member__available
上的:boolean
的CheckColumn。
在布尔值是模型属性而不是关联属性的网格上,checkcolumn工作正常。但是,当我从关联指定布尔值时,如member__available
,则不会显示复选列。要使checkcolumn工作,我手动指定xtype
和其他列配置。然后复选框将从false更新为true,但是一旦true将不响应“取消选中”,它将陷入真实状态(现在保存在数据库中)。
extjs 4.2.0.663
netzke-core 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
答案 0 :(得分:0)
使用虚拟属性很容易解决这个问题,例如:
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
的原因。