2016-03-10 6 views
0

Как передать переменные между контроллером приложения и различными представлениями в Ruby on rails? Есть ли глобальная область действия, которая помогает нам отслеживать любую переменную, созданную в контроллере, и использовать ее в любом коде представления в одном приложении?Переменные контроллера не распознаются в некоторых представлениях

+0

Что вы пытаетесь достичь? Можете ли вы добавить пример? – spickermann

+0

Я на самом деле работаю над плагином redmine. У меня есть файл просмотра «_index.html.erb» в «myPlugin/app/views». Я не мог использовать переменные экземпляра (объявленные в моем контроллере приложений) из файла представлений «_index.html.erb». В файле журнала указано, что «@project» не был распознан ... Несмотря на это, я смог взаимодействовать с одним и тем же контроллером из другого представления в myPlugin/app/views/myPlugin/index.html.erb – sfaxiano

ответ

0

Чтобы использовать метод из контроллера приложения в представлении, отметьте его как вспомогательный метод. Что-то вроде этого

class ApplicationController < ActionController::Base 

    def current_user 
    @current_user ||= User.find(session[:user_id]) 
    end 

    helper_method :current_user 

end 

Теперь метод current_user доступен во всех видах, и он может быть использован для получения переменной @current_user экземпляра.

0

Просто Написать свой код в помощнике приложения и он будет доступен через любой точки зрения в применении ..

0

пожалуйста, прочитайте http://guides.rubyonrails.org/action_controller_overview.html (особенно часть 3)

Это не самый лучший вариант, хотя, я рекомендую чтение об экспонировании переменных в контроллерах.

https://github.com/hashrocket/decent_exposure или https://github.com/netguru/decent_decoration

созданы только для этого, и я рекомендую их.

0

Переменная, объявленная следующим образом:

@current_user 

, например, будут доступны в любых взглядов до тех пор, как метод, который создает, что переменная называется в контроллере для этой точки зрения.

Вы можете прочитать больше о рубиновых переменных здесь http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/variables.html