我找到了一个类似这篇文章标题的示例代码并且有一个问题。为什么会这样写params[:member][:user]
?
我从我的朋友那里得到了建议,他解释说这[:member]
意味着表名和[:user]
表中包含的列名member
。但我不明白,因为 table 总是复数,很明显他或她正试图在 table 中搜索,members
如图所示Member.find
。
我找到了一个类似这篇文章标题的示例代码并且有一个问题。为什么会这样写params[:member][:user]
?
我从我的朋友那里得到了建议,他解释说这[:member]
意味着表名和[:user]
表中包含的列名member
。但我不明白,因为 table 总是复数,很明显他或她正试图在 table 中搜索,members
如图所示Member.find
。
之所以这么写是params[:member][:user]
因为 params 是一个嵌套的散列,例如:
params = {"utf8"=>"✓",
"authenticity_token"=>"uAbvJ/LE1f8eDcANe+TVip5nsWfP/xJxxoGmsQyKFnU=",
"access_token"=>"",
"member"=> {"name"=>"foobar",
"email"=>"foo@bar.com",
"user"=>"jimmy",
"session"=>"2013-01-17 13:15:00 UTC"},
"commit"=>"Submit",
"locale"=>"es"}
这意味着要获取用户内部的值member
,您需要编写类似params[:member][:user]
. 这是 Rails 提交的表单的典型行为,因为模型数据将在它自己的哈希中,就像member
在这个例子中一样。