Ruby on rails Rails参数解释
我跟在后面。 我无法理解rails中的Ruby on rails Rails参数解释,ruby-on-rails,ruby,Ruby On Rails,Ruby,我跟在后面。 我无法理解rails中的params[]。请不要向我提供rails指南的链接。我已经读过了,但还不清楚。我的怀疑是 我能给出什么论据 什么是params[:folder]¶ms[:id] 如果我们传递的是列名,那么我的表中没有文件夹列。列位于“我的文件夹”表中:id、name、created\u at、updated\u at 我使用的是rails 4.2.4,所以我读过的一些地方使用了attr_accessible,但现在它已经过时了。那么,用什么来代替attr_ cla
params[]
。请不要向我提供rails指南的链接。我已经读过了,但还不清楚。我的怀疑是
class FoldersController < ApplicationController
before_filter :authenticate_user!
def index
@folders = current_user.folders
end
def show
@folder = current_user.folders.find(params[:id])
end
def new
@folder = current_user.folders.new
end
def create
@folder = current_user.folders.new(params[:folder])
end
end
class FoldersController
class HomeController < ApplicationController
def browse
#get the folders owned/created by the current_user
@current_folder = current_user.folders.find_by_id(params[:folder_id])
end
end
class HomeController
嗯,参数是一系列的键值对,来自一个带有页面请求的浏览器。对于httpget
请求,params
在URL
中编码
对于这样的请求:
http://www.example.com/?foo=1&bar=cat
http://www.example.com/folders/55/?folder[name]=bubble&folder[size]=1324
然后,params[:foo]
将是“1”
,params[:bar]
将是“cat”
在HTTP/HTML
中,params
实际上只是一系列key-value
对,其中key
和value
是字符串,但是Rails
有一种特殊的语法,可以使params
成为Hash
对于这样的请求:
http://www.example.com/?foo=1&bar=cat
http://www.example.com/folders/55/?folder[name]=bubble&folder[size]=1324
然后,
params[:folder]
将是一个Hash
,
params[:folder][:name]
将是“bubble”
和
params[:folder][:size]
将是“1324”
。而且,
参数[:id]
将是“55”
rails4
现在使用强参数
保护属性现在在控制器中完成。像这个例子:
class ArticleController < ApplicationController
def create
Article.create(article_params)
end
private
def article_params
params.require(:article).permit(:name, :category)
end
end
class ArticleController
参数对象只是一个散列,包含随请求发送到服务器的参数。例如,如果您使用GET
请求访问端点/folders/1
,这意味着您正在运行FoldersController#show
操作,您将有一个包含:id
键的散列(该键反过来在路由中声明,因为您可能正在使用资源:folders
方法)。您可以使用params[:id]
访问它,从而返回1
。如果在查询字符串中传递任何其他参数,它们也将可用:访问/folders/1?show_details=true
将生成一个params
对象,其中包含一个:show_details
键,映射到值true
params
包含请求参数。如果导航到/folders/1234?foo=bar
,则参数[:id]
将是1234
,而参数[:foo]
将等于“bar”
。