respond_with的用法

        随着学习的深入,Rails 3带给我的惊喜越来越多。respond_with实在是个好东西,最初是在一篇大牛的博客中看到这个东西。不过奇怪的是在api.rubyonrails.org中找不到它的说明。刚刚又看了一片关于respond_with的博客《respond_with in Rails 3》 ,写的很详细。

 

        以前用respond_with,感觉总是模模糊糊的,一直以为:location是一个类似前缀的东西。

 

        当看到“当数据保存成功后,它自动跳转到@story对应的显示页面,当保存失败后,会自动render的@story的new页面。”突然好像明白了,:location的值会不会就是成功要显示的页面?马上去实验了一下,果然!我在location的地方传了一个'http://google.com'进去,保存成功就看到Google了。

 

        怎么感觉自己越活越笨了呢,要费这么大事才能明白这么简单的东西。

++++++++++++++++++++++++++++++

     2011-03-16新增

++++++++++++++++++++++++++++++

        在实际的使用当中,常常会到namespace,如果按照前面说的方法,加一个:location,例如:

respond_with @order, :location => store_order_url(@order)

 希望订单创建成功后显示订单,当你像上面这样写的时候,会得到一个错误:

Routing Error

No route matches {:action=>"show", :id=>#<Order id: nil, ……>,  :controller => "store/orders"}

 查了好多资料,发现原来对于namespace有一种更方便的写法:

respond_with :store, @order

 如果,还想重定向到列表页,就这样写:

respond_with :store, @order, :location => store_orders_url

 恩,终于搞定了

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值