Нужно ли мне запрашивать оригинальный файл при переопределении контроллера из Rails Engine? - PullRequest
1 голос
/ 01 декабря 2009

Я пытаюсь переопределить действие в контроллере, определенном Rails Engine.

Похоже, мне нужно запросить исходный файл перед повторным открытием класса, вот так:

require File.join(RAILS_ROOT, 'vendor/plugins/myplugin/app/controllers/some_controller')
class SomeController

  def index
    render :text => 'this is my index'
  end
end

Это имеет смысл, но это требует довольно уродливо. Есть ли какая-нибудь магия Rails, которая позволила бы мне избежать начального требования?

1 Ответ

1 голос
/ 01 декабря 2009

Это полное предположение ...

Кажется, больше проблемы с синхронизацией нагрузки. Например, ваш файл загружается перед плагином. Где находится ваше действие? Config / инициализаторы? Lib?

Я не уверен, когда загрузится Rails Engines, поэтому поиграйтесь с расположением (должно работать, поместив его в lib).

Или, что еще лучше, создайте свой собственный плагин с изменениями и убедитесь, что он загружается после оригинала.

И вы, вероятно, хотите что-то более похожее на:

SomeController.class_eval do

  def index
    ...
  end

end
...