Проблема с контроллером в связи с двумя моделями - PullRequest
0 голосов
/ 06 марта 2012

У меня есть модель вложения и контроллер для всех моих изображений на сайте.

Отношения (полиморфные):

class House
  has_many :attachments, :as => :attachable
end

class Apartment
  has_many :attachments, :as => :attachable
end

Контроллер вложений выглядит так, чтобы хранить правильные переменные.

class AttachmentController
  @appartment = Appartment.find(params[:apartment_id])
  @attachments = @appartment.attachments
end

это работает на странице квартиры / пути. (квартира / 1 / активы) Но на странице дома (дом / 1 / активы) я получил сообщение об ошибке «Не удалось найти квартиру без идентификатора»

Как я могу справиться с этим / лучшим подходом? Условия в контроллере?

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Возможная проблема ...

"Квартира" против квартиры

0 голосов
/ 06 марта 2012

Сначала вам нужно проверить, какие ключи присутствуют, примерно так:

class AttachmentController
  before_filter :prepare_attachable

  def index
    @attachments = @attachable.attachments
  end

  private

  def prepare_attachable
    if params.kas_key?(:apartment_id)
      @attachable = Apartment.where(:id => params[:apartment_id]).first
    elsif params.kas_key?(:house_id)
      @attachable = House.where(:id => params[:house_id]).first
    end
    raise ActiveRecord::RecordNotFound if @attachable.blank?
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...