Работа через Rails Tutorial 3rd Edition Майкл Hartl: Ch 8 Войдите, ВыйтиИспользование переменных экземпляра в контроллерах
мне нужна помощь, чтобы понять, почему в session_controller мы используем регулярную переменную «пользователя» в то время как в user_controller мы используем переменную экземпляра «@user».
я заметил, что в session_controller, мы используем
def create
user = User.find_by...
, тогда как в users_controller, мы используем
def create
@user = User.new...
Майкл утверждает, «Основное различие между формой сеанса и формой регистрации является что у нас нет модели сеанса и, следовательно, нет аналога для переменной @user ... », обращаясь к этому:
form_for(@user)
от пользователей просмотра по сравнению с
form_for(:session, url: login_path)
с точки зрения сеанса.
Это связано? Я до сих пор не понимаю этого. Пожалуйста, дайте мне знать, если мне нужно быть более ясным или конкретным. Спасибо!
_ «Итак, теперь почему переменная экземпляра не используется в session_controller #create action? Хорошо, если вы создаете экземпляр объекта @user и используете его в форме входа в систему, как то, что вы сделали в регистрационной форме, оно вызовет #create действие users_controller вместо #create действия session_controller. "_ – user1486510
Вы говорите, что переменная экземпляра @user, определенная в UserController, доступна в формах вне представлений/users /? – user1486510