Rails 会话中这个参数符号来自哪里

发布于 2024-12-12 01:01:57 字数 916 浏览 0 评论 0 原文

我正在阅读 Obie Fernandez 的 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

我的问题与 create 方法有关。当他写时

UserSession.new(params[:user_session]) 

:user_session 来自哪里?我知道 UserSession.new 实例化一个新对象,但是参数从哪里来?他们会有什么名字?

它是否取决于想象中的某些东西?或者这些参数是由 Rails 根据模型名称自动生成的?

I'm reading Rails 3 Way by Obie Fernandez. He's demonstrating the use of a plugin Authlogic, and created a User and UserSession model and a UsersController and UserSessionsController.

He hasn't created any views (but he might assume some exist)

In the UserSessionsController, he creates this code

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

My question relates to the create method. When he writes

UserSession.new(params[:user_session]) 

where is :user_session coming from? I undersdtand that UserSession.new instantiates a new object, but where do the params come from? and what names would they have?

Does it depend on something in the imaginary view? or are these params automatically generated by Rails based on the name of the Models?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

高跟鞋的旋律 2024-12-19 01:01:57

params 是传递给所有操作的特殊哈希,无论类型如何。如果给定的操作没有参数,那么它就是空的。这是您如何将参数从页面/表单/URL 参数传递到操作中的方法。最常见的参数来源之一是表单中的数据元素。

对于 authlogic,它包含用于创建用户会话的用户凭据(用户名、密码)。

查看参数部分了解更多信息。

params is a special hash that is passed to all actions, regardless of the type. If a given action has no parameters, then it's simply empty. It's how you can pass parameters from a page/form/URL parameters into the action. One of the most common sources of parameters are data elements from a form.

In the case of authlogic, it contains user credentials for creating the user session (username, password).

Check out the parameters section for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文