论坛首页 编程语言技术论坛

rails中传递多个参数破坏了 restful原则?

浏览 10618 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-21  
robbin 写道
JavaEye2.0上线的时候,rails1.2还没有出来,当然不是REST架构的了。


如果有了 1.2 来开发的话,就有办法写出 使用Get 方式的请求的url,传递多个参数,但是不带 "?"的方法么? 好像也不行吧   就算能写成
 www.iteye.com/rss/name/test/id/4  
,这种形式,里面有两个参数,但是 rails怎么知道谁是变量,谁是值啊?
0 请登录后投票
   发表时间:2007-04-21  
为了传个参数把URL搞的那么复杂 ?

url中没有参数 但data中可以放参数  只要server端能读出来就可以
0 请登录后投票
   发表时间:2007-04-22  
lyo 写道
robbin 写道
JavaEye2.0上线的时候,rails1.2还没有出来,当然不是REST架构的了。


如果有了 1.2 来开发的话,就有办法写出 使用Get 方式的请求的url,传递多个参数,但是不带 "?"的方法么? 好像也不行吧   就算能写成
 www.iteye.com/rss/name/test/id/4  
,这种形式,里面有两个参数,但是 rails怎么知道谁是变量,谁是值啊?


一项资源只有唯一确定的URI,例如 /rss/4,至于/rss/name/test/id/4明显就不是对资源的唯一确定性描述,或者你可以这样理解:rss是一项资源,这项资源里面还包含了name这项资源,这种资源嵌套关系表达出来就是:

/rss/4/name/test

0 请登录后投票
   发表时间:2007-04-22  
但是 link_to 标签能够build出来这种 url么,不会让我手动去拼一个url字符串吧? 我得意思是说 rails里面好像无法自动创建累死
/rss/4/name/test
这种多个参数的url吧,即使是能创建出来,controller获得参数的时候,由于 url中不是 key=value,这种形式,controller能辨别出来谁是 key,谁是 value? 就是我这个 params[:XXX?] 应该如何写?不用我去修改 rout.rb 文件吧? 那样很麻烦
0 请登录后投票
   发表时间:2007-04-22  
lyo 写道
但是 link_to 标签能够build出来这种 url么,不会让我手动去拼一个url字符串吧? 我得意思是说 rails里面好像无法自动创建累死
/rss/4/name/test
这种多个参数的url吧,即使是能创建出来,controller获得参数的时候,由于 url中不是 key=value,这种形式,controller能辨别出来谁是 key,谁是 value? 就是我这个 params[:XXX?] 应该如何写?不用我去修改 rout.rb 文件吧? 那样很麻烦


在routes.rb里面定义嵌套资源以后,会自动创建所有相关的helper link。

map.resources :rss do |r|
  map.resources :names
end
0 请登录后投票
   发表时间:2007-04-22  
看来只有修改routes 全局文件了,可能是唯一的方法。不这样作的可能就是 tapestry了,tapestry的参数好像是按照顺序传递倒后台的,这样它的url就可以写成
http://www.iteye.com/app/service/1/test/li@lyo.com
这样,但是在后台得到的时候一定是按照 params[0],params[1]这样获得,后者更不好,这样把前台和后台严重耦合起来,后台必须知道前台的参数的顺序,这样更糟糕,可能像ruby用route维护这样一种对应关系更好一点
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics