Ruby on 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

我跟在后面。 我无法理解rails中的
params[]
。请不要向我提供rails指南的链接。我已经读过了,但还不清楚。我的怀疑是

  • 我能给出什么论据
  • 什么是params[:folder]¶ms[:id]
  • 如果我们传递的是列名,那么我的表中没有文件夹列。列位于“我的文件夹”表中:id、name、created\u at、updated\u at
  • 我使用的是rails 4.2.4,所以我读过的一些地方使用了attr_accessible,但现在它已经过时了。那么,用什么来代替attr_

    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”