Я использую genc facebooker, который создает переменную, называемую facebook_session, в области контроллера (это означает, что когда я могу вызвать facebook_session.user.name из раздела userscontroller, это нормально). Однако, когда я переписываю функцию full_name (расположенную в моей модели), я не могу получить доступ к переменной facebook_session.Доступ к переменной, объявленной в контроллере, из модели
0
A
ответ
1
Вам нужно будет передать значение в вашу модель в какой-то момент, а затем сохранить его, если вам нужно регулярно обращаться к нему.
Модели не могут извлекать данные из контроллеров - это может повредить вещи в режиме консоли, модульном тестировании и в нескольких других ситуациях.
Самый простой ответ что-то вроде этого:
class User
attr_accessor :facebook_name
before_create :update_full_name
def calculated_full_name
facebook_name || "not sure"
end
def update_full_name
full_name ||= calculated_full_name
end
end
class UsersController
def create
@user = User.new params[:user]
@user.facebook_name = facebook_session.user.name
@user.save
end
end
Смежные вопросы
- 1. Доступ к не объявленной переменной
- 2. Доступ к переменной, объявленной в форме
- 3. Доступ к переменной модели в блоке в контроллере
- 4. Невозможно получить доступ к переменной, объявленной SpriteBuilder
- 5. Доступ к данным класса из объявленной структуры
- 6. Я хочу получить доступ к переменной, объявленной в фильтре
- 7. Как получить доступ к переменной current_user в контроллере или модели?
- 8. Доступ к переменной в функции, объявленной в модели, из контроллера в рамках Zend
- 9. Доступ к модели в контроллере равен nil
- 10. Доступ к кускам комбинированной модели в контроллере
- 11. не в состоянии получить доступ к переменной, объявленной в buildtypes
- 12. Доступ к коллекции модели в контроллере - Ember2.5
- 13. SELECT из объявленной переменной
- 14. Доступ к переменной модели из gsp
- 15. Python: Как получить доступ к переменной, объявленной в родительском модуле
- 16. Как получить доступ к переменной, объявленной внутри обещание в AngularJS
- 17. Доступ к переменной, объявленной внутри частного класса в java
- 18. Доступ к локальной переменной в контроллере angularjs
- 19. Доступ к нг-повтора переменной в контроллере
- 20. Доступ к переменной current_user в другом контроллере
- 21. Как вы получаете доступ к переменной, объявленной в расширении класса?
- 22. Как получить доступ к переменной, объявленной в модуле?
- 23. Как получить доступ к переменной, объявленной внутри обещание в транспортира
- 24. Как получить доступ к переменной, объявленной в функции?
- 25. Не удается получить доступ к объявленной глобальной переменной в WordPress
- 26. Доступ к локальной переменной из шаблона в контроллере в Angular2
- 27. Доступ к переменной Ruby (из модели или контроллера) в SASS
- 28. Pass модели (LINQ) приводят к предварительно объявленной переменной
- 29. Доступ к переменной, объявленной внутри функции внутри класса (PHP)
- 30. Как получить доступ к переменной, объявленной внутри if-блока?
Спасибо за ваш ответ Остин, в этой ситуации будет этот код работать, если вы что-то вроде этого: х = User.find (1) х .full_name Я не уверен, что метод create так называется. Спасибо –
Я уточнил свой код, чтобы вы знали, как сохранить facebook_name в базе данных. Теперь он должен работать, чтобы получить его, как вы предлагаете. – austinfromboston