2
在Rails中動態創建控制器的最佳方式是什麼?以編程方式在Rails中創建控制器
我有一個類需要生成一堆從它繼承的控制器。我可以在/ app/controllers中創建一堆文件,但它們基本都是空文件。有必要動態生成這些類並讓它們像Rails中的其他控制器一樣對待,例如在開發模式下正確重新加載。
我試圖把這個在配置/初始化:
FL.contact_types.each do |contact_type|
controller_name = "#{contact_type.pluralize}Controller"
Object.const_set(controller_name.to_sym, Class.new(ContactsController)) unless Object.const_defined?(controller_name.to_sym)
end
這個工作,但我碰到的依賴性/重裝的問題,並得到「AuthenticatedSystem的副本已經從模塊樹移除,但仍主動「,因爲ContactsController繼承自包含AuthenticatedSystem的ApplicationController。
創建一堆空文件真的是最好的解決方案嗎?
這聽起來像你想要一個捕獲所有控制器爲一組特定的傳入操作。 –
嗯,我想我想爲每個ContactType單獨控制器。他們都是聯繫人,但少數人有一兩個附加領域,所以STI似乎是正確的選擇。它的工作原理,但我只是想解決所有的控制器完全相同的事情,所以我讓他們都繼承自ContactsController。 雖然我可以擺脫額外的控制器,並通過ContactsController執行所有操作。我只需要明確地設置類型,我不能使用form_for魔法。不過,我想這可能仍是一條路。只是不同的混亂。 –
好吧,我採用了通過我的聯繫人控制器運行一切的解決方案。我不喜歡它,但似乎有兩種方式的權衡。這種方式看起來像我不得不使用更少的黑客。我想這是說什麼。 :)謝謝 –