Active Admin Gem Model Association. - PullRequest
       18

Active Admin Gem Model Association.

2 голосов
/ 07 октября 2011

Я только начал использовать Active Admin Gem. У меня есть небольшая проблема, и мне было интересно, есть ли у кого-нибудь решение.

У меня есть две модели

Собаки
Breeders

Используя мое приложение, я бы хотел иметь возможность

  1. найти собак породы, а затем при просмотре собаки есть список заводчиков.
  2. Когда я посещаю заводчиков (показывает страницу), я хочу видеть породы собак, которые у них есть.

Я создал модели, но я не уверен, как выполнить задачу, однако вы попытались создать таблицу соединения

таблица присоединения breeders_dogs

class BreedersDogs < ActiveRecord::Migration
   def self.up
   create_table 'breeders_dogs', :id => false do |t|
    t.integer :breeder_id
    t.integer :dog_id
  end
  end


   def self.down
  drop_table :breeders_dogs
  end

end

Модель для собак

class Dog < ActiveRecord::Base
   has_and_belongs_to_many :breeders, :join_table => :breeders_dogs

end

Заводчик Модель

class Breeder < ActiveRecord::Base
   has_and_belongs_to_many :dogs,  :join_table => :breeders_dogs
end

Я пробовал это, но ситуация не та. Использование Rails Gem Active Admin с ассоциациями

Я борюсь за то, как создать эту связь между двумя моделями. Заранее спасибо.

1 Ответ

4 голосов
/ 07 октября 2011
# app/admin/dogs.rb


    show :title => [whatever field you want your title to be e.g. :dog_name] do

        panel "Dog Info" do
          attributes_table_for dog do
                row("..label..") { dog.fieldname }
                ...
              end
        end

        panel "List of Breeders" do
            table_for dog.breeders do |t|
                t.column("Breeder List") { |breeder| breeder.name }
            end
        end
    end


# Form Fields

form do |f|

    f.inputs "Dog Info" do
      f.input :inputname
      ...
    end

    f.inputs "Breeders" do
      f.input :breeders
    end
    f.buttons
end

Я думаю, это то, что тебе нужно. Не забудьте настроить имена полей и т. Д. Для вашей настройки. :)

...