RoR: clear_link за запись - PullRequest
       4

RoR: clear_link за запись

0 голосов
/ 13 августа 2010

Я говорю на полуруби половинном английском в следующем параграфе

У меня есть Person с, и у меня есть 'Pet'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 делает это для всей таблицы, а не для каждой записи.)

1 Ответ

0 голосов
/ 13 августа 2010

Лучшим решением является управление операциями над вложенной таблицей вместо полного ее отключения.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...