我正在谈论以下段落中的半红宝石半英语
我有Person
s我有'宠物'。 Person
has_many
Pet
。我有一张Person
的表格,其中包含了包含在单元格中的宠物,例如:
def pets_column(record)
if record.pets.count == 0
'no pets'
else
record.pets.collect{|p| html_escape(p.to_label) }.join('<br />')
end
end
它显示正确,它是一个显示宠物嵌套表的链接。
我想根据某些条件决定它是否应该是每个记录的链接。例如,如果record_frozen_at is not null
,则必须冻结记录的Pet
列表。 (没有添加,没有删除,没有更新这些宠物)
(columns[:pets].clear_link
为整个表执行此操作,而不是基于每个记录。)
答案 0 :(得分:0)
更好的解决方案是控制嵌套表上的操作,而不是完全禁用它。
class PetController < ActionController::Base
# ...
protected
def person_mutable?
person_id = active_scaffold_constraints[:person]
return false if person_id.nil?
person = person.find_by_id(person_id)
return false if person.nil?
return person.record_frozen_at.nil?
end
def create_authorized?
return person_mutable?
end
def update_authorized?
return person_mutable?
end
def delete_authorized?
return person_mutable?
end
end