откуда берется этот символ param в сеансе Rails - PullRequest
3 голосов
/ 25 октября 2011

Я читаю Rails 3 Way Оби Фернандеса. Он демонстрирует использование плагина Authlogic и создал модель User и UserSession, а также UsersController и UserSessionsController.

Он не создал ни одного вида (но он может предположить, что некоторые существуют)

В UserSessionsController он создает этот код

class UserSessionsController < ApplicationController 

     def new
        @user_session = UserSession.new
     end

    def create
     @user_session = UserSession.new(params[:user_session]) 
       if @user_session.save
       redirect_to user_path(current_user) 
    else
        render :action => :new 
       end
    end

    def destroy 
      current_user_session.destroy 
      redirect_to new_user_session_path
    end 

    end

Мой вопрос касается метода создания. Когда он пишет

UserSession.new(params[:user_session]) 

откуда :user_session откуда? Я понимаю, что UserSession.new создает новый объект, но откуда поступают параметры? и какие имена они будут иметь?

Зависит ли это от чего-то в воображаемой точке зрения? или эти параметры автоматически генерируются Rails на основе имени моделей?

1 Ответ

2 голосов
/ 25 октября 2011

params - это специальный хеш, который передается всем действиям независимо от их типа.Если данное действие не имеет параметров, то оно просто пустое.Это то, как вы можете передавать параметры из параметров страницы / формы / URL в действие.Одним из наиболее распространенных источников параметров являются элементы данных из формы.

В случае authlogic он содержит учетные данные пользователя для создания сеанса пользователя (имя пользователя, пароль).

Извлечение раздел параметров для получения дополнительной информации.

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