Rails参数解释?

12 浏览
0 Comments

Rails参数解释?

有没有人能够解释Rails控制器中的params:它们从哪里来,它们参考了什么?

  def create
    @vote = Vote.new(params[:vote])
    item = params[:vote][:item_id]
    uid = params[:vote][:user_id]
    @extant = Vote.find(:last, :conditions => ["item_id = ? AND user_id = ?", item, uid])
    last_vote_time = @extant.created_at unless @extant.blank?
    curr_time = Time.now
  end

我想逐行阅读这段代码并理解其中的内容。

admin 更改状态以发布 2023年5月23日
0
0 Comments

正如其他人所指出的那样,params的值可以来自GET请求的查询字符串,也可以来自POST请求的表单数据,但还有第三个地方它们可以来自:URL的路径。

可能你知道,Rails使用一些称为路由的东西来将请求定向到对应的控制器操作。这些路由可能包含从URL中提取出来并放入params中的片段。例如,如果你有这样一个路由:

match 'products/:id', ...

那么对URLhttp://example.com/products/42的请求将把params[:id]设置为42

0
0 Comments

参数来自用户在请求页面时的浏览器。对于最常见的HTTP GET请求,参数会被编码在URL中。例如,如果用户的浏览器请求了

http://www.example.com/?foo=1&boo=octopus

那么params[:foo]将是"1",params[:boo]将是"octopus"。

在HTTP / HTML中,参数实际上只是一系列键值对,其中键和值都是字符串,但Ruby on Rails有一个特殊的语法,使参数成为包含在哈希中的哈希。例如,如果用户的浏览器请求了

http://www.example.com/?vote[item_id]=1&vote[user_id]=2

那么params[:vote]将是一个哈希,params[:vote][:item_id]将是"1",params[:vote][:user_id]将是"2"。

Ruby on Rails的params相当于PHP中的$_REQUEST数组

0