Доступ к приложению называет из шаблона направляющих при генерации приложения для направляющих

Вам необходимо использовать точно такие же переменные и этапы предварительной обработки, чтобы создать функции для используемой модели. Эта информация является артефактом вашего конвейера предварительной обработки и не сохраняется в модели. Следовательно, его нельзя восстановить из выбранной модели.

Используйте контроль исходного кода (например, git), чтобы отслеживать код предварительной обработки и настройки модели.

8
задан danengle 11 March 2009 в 06:34
поделиться

4 ответа

Спасибо за ответы. Mike Woodhouse, Вы были так близки. Оказывается, все, что необходимо сделать для доступа к appname из шаблона направляющих...

@root.split('/').last  

@root переменная является первой вещью, созданной при инициализации шаблонов, и доступна в шаблонах направляющих. RAILS_ROOT не работает.

8
ответ дан 5 December 2019 в 04:52
поделиться

RAILS_ROOT даст Вам полный путь Вашему корневому каталогу. Ваше название приложения будет частью строки после финала '/', который можно захватить в любом количестве путей.

Править: Не совсем достаточно сделать задание. Mike и Dan сглаживают его ниже.

1
ответ дан 5 December 2019 в 04:52
поделиться

Существует, вероятно, более простой путь, но это, кажется, работает:

RAILS_ROOT.split('/').last

Править: Bleah - это было провалено однажды, и избиратель был прав. Если бы я считал вопрос более тщательно, то я заметил бы 2.3 и template.rb элементы. Извинения.

Я подозреваю, что RAILS_ROOT не будет создан в точке, что Вам нужно название приложения. Взгляд на ruby\lib\ruby\gems\1.8\gems\rails-2.2.2\bin\rails, однако, почти первая вещь, которая происходит, является этим:

app_path = ARGV.first

Это используется в конце сценария, чтобы позволить chdir и замораживанию быть сделанным в случае необходимости - я не знал, что мог insta-заморозиться при создании, таким образом, я изучил что-то новое, по крайней мере. ARGV затем привыкает здесь:

Rails::Generator::Scripts::Generate.new.run(ARGV, :generator => 'app')

который быстро получает нас к месту, где ARGV действительно обрабатывается:

rails-2.3.1\lib\rails_generator\scripts.rb

где я вижу

Rails::Generator::Base.instance(options[:generator], args, options).command(options[:command]).invoke!

Где-нибудь ниже вот, вероятно, где шаблонная обработка обрабатывается. Я боюсь, что я на очень ранней стадии с 2,3, и шаблонная обработка является областью, на которую я еще не посмотрел.

Это помогает немного лучше, чем мое первое усилие?

4
ответ дан 5 December 2019 в 04:52
поделиться

Я считаю, что сейчас предпочтительнее вызывать Rails.root, а не RAILS_ROOT. Судя по всему, кто-то из представителей planet rails не любит прописные буквы или по какой-то другой важной причине. По состоянию на 2.3.5 они оба работают.

0
ответ дан 5 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: