2013-09-27 1 views
0

Я настраиваю приложение active_admin и имеют следующую структуру STIActiveAdmin STI ошибка на шоу действия, но не редактировать

class Organization < ActiveRecord::Base 
    attr_accessible :name, :type 
end 

class Contractor < Organization 
    def self.model_name 
    return Organization.model_name 
    end 
end 

class Supplier < Organization 
    def self.model_name 
    return Organization.model_name 
    end 
end 

Использование Active Администратор У меня есть ресурс для организации. Прекрасно подходит для редактирования, но не для действия шоу.

например. Я создал новую организацию и установить тип на «Поставщик» (также опробован Подрядчиком), а затем, когда я сохранить его перенаправляет на /admin/organizations/20

я получаю следующее сообщение об ошибке на этом пути

undefined method `association_class' for nil:NilClass 


Extracted source (around line #1): 

1: insert_tag renderer_for(:show) 

НО: отлично работает перейти на /admin/orgnizations/20/edit

Любой, кто может сказать мне, что я делаю неправильно?

Thanks

ответ

0

OK. Итак ..... как выясняется, моя проблема заключалась в том, что у меня была ассоциация с организацией под названием «владелец» с использованием класса User.

Чтобы устранить эту проблему (я до сих пор не совсем понимаю, я просто сделал переопределение шоу действия активного администратора, как так

ActiveAdmin.register Organization do 

    show do |ad| 
    attributes_table do 
     row :name 
     row :owner do |record| 
     owner = User.find(record.owner_id) 
     link_to owner.full_name, admin_user_path(owner) 
     end 
     row :type 
    end 
    active_admin_comments 
    end 
end 

В основном это переопределение дал мне лучший контроль над тем, как активный администратор делает выборку Владелец

Надеюсь, что это поможет кому-то еще, и, пожалуйста, дайте мне знать, если есть лучшие решения там :)

Смежные вопросы