Rails 会话中这个参数符号来自哪里
我正在阅读 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 根据模型名称自动生成的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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.