rails 传参

http://www.cnblogs.com/abbuggy/archive/2012/06/06/2594217.html


<span style="font-size:18px;">这是标准的HTML参数格式,问号后面通过&分割的是参数名/值对,其中等号前面的page和per_page是希望传递参数名,等号后面是参数的值。我们需要做的就是向创建连接参数的方法中传入这些信息,很简单只要按照名/值对的形式加入到参数列表中即可。</span> 

 

 

{:controller =>'demo',:action => 'index',:page =>3 :per_page =>10}

 

<span style="font-size:18px;">当Rails建连接时,按照顺序查看各个参数的值。首先查看指向的Controller的名字用“controller”表示,如果没有指定则缺省为当前页面对应的Controller。Action名字用“action”表示,如果没有定义Action名字,则缺省为当前页面对应的Action。id也作为标准参数的一部分使用“id”表示,之外的就是附加的参数。所有这些都会被放入params列表中,后面的程序就从params中获取从link中携带过来的信息。</span> 

 

先向Template里的link中传入参数信息。

 

<h1>Demo#hello</h1>
<p>Hello Page!</p>

<%= link_to("link with params",{:controller =>'demo',:action => 'index',:page =>3 ,:per_page =>10})%>

<p>Find me in app/views/demo/hello.html.erb</p>

 

<span style="font-size:18px;">打开页面可以看到,当鼠标悬停在链接上方时浏览器提示链接指向的URL就是我们想要的一致。</span> 

 

接下来是如何获取链接中的参数。从View和Controller中都可以得到参数值,但一般来说这些值是由Controller读取的。

看看如何在Templates中读取参数方法如下

 

<h1>Demo#index</h1>
<p>Index Page!</p>

Perpage:<%= params[:per_page]%>
Page:<%= params[:page]%>

<p>Find me in app/views/demo/index.html.erb</p>


 

浏览器的地址栏中显示链接的URL,页面上显示了从params中读取到的内容。

在Controller中读取参数存到实例变量中,Template可以通过实例变量获取数据并根据这些数据进行计算。

 

class DemoController < ApplicationController

  def index
	@per_page=params[:per_page]
	@page=params[:page]
	@next_page=@page.to_i+1
  end
   
end

 

<span style="font-size:18px;">Template稍作修改,不直接从params中读取而是从Controller的实例变量中读取,因为实际应用中这些数据将是经过计算的结果值。</span>
<h1>Demo#index</h1>
<p>Index Page!</p>

Perpage:<%= @per_page%></br>
Page:<%= @page%></br>
Nexe Page:<%= @next_page %></br>

<p>Find me in app/views/demo/index.html.erb</p>


 

最后,还有一个比较好的调试手段分享一下,就是通过增加打印来查看params中的值

 

<h1>Demo#index</h1>
<p>Index Page!</p>

Perpage:<%= @per_page%></br>
Page:<%= @page%></br>
Nexe Page:<%= @next_page %></br>

<p>Find me in app/views/demo/index.html.erb</p>

<hr/>
<%= params.inspect %>

 

<span style="font-size:18px;">params.inspect方法会打印出其中所有内容以便查看。</span> 

 

抱歉!发生了错误!麻烦反馈至contact@cnblogs.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值