论坛首页 Ruby版 rails

REST,在页面展现中遇到了问题,期待解惑

浏览 871 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-08-02

看了很多坛子里的高手讨论REST。我的理解,资源是业务层面的,不是数据库CRUD操作的外在展现。资源不是Model。但是在REST的页面展现中,我还是遇到了问题,如何处理我不是很明白,提出来期待解惑:

1、通常在一个WEB页面,我们会放上几个信息,比较中间的产品列表,右侧的是最受欢迎的产品top10,下面是当前正在访问该产品列表的在线用户。这个页面是不是有三个资源,而URL只是/:products,是不是有点不好解释?

2、我们把产品看做一个资源,但是我们可能有几个不同的list产品列表的地方,一个是产品全信息,一个是只显示产品和价格的,一个是只显示产品名称,那这个在非rest中,只是在ProductController中增加几个action的方法,再使用局部模板就可以解决的问题,在rest中如何操作?

3、就是前面提到的,局部模板在rest中,好象没地方可以放啊?

我的迷惑就在于,URL表示了对资源操作的申请,同时URL也表示要得到一个页面,但是在一个页面中,我们又可能要展示多个资源,那一个URL,就是对多个资源的申请?

   
最后更新时间:2007-08-02
在读beast的代码时,发现了一个问题,以forum的index.rhtml为例,最下面是在线用户列表,内容如下:

<% online_users = User.currently_online -%>
<% unless online_users.empty? %>
<div class="stats">
<div class="users">
<% unless online_users.empty? %>
<%= 'Users online:'[:users_online] %> <%= online_users.map { |u| link_to "<strong>#{h u.display_name}</strong>", user_path(u) } * ", " %><br />
<% end %>
</div>
</div>
<% end %>

这里直接使用了User这个model的方法,就成了view直接操作model,这和我们一直用的view访问controller,再由controller操作model的传统有冲突,如果理解这个问题?
   
0 请登录后投票
最后更新时间:2007-08-02
在网上找了半天,看到了fixopen 以前的一个评论:

REST跟MVC!?哪儿跟哪儿啊。
REST是为了提供大规模并行而提出的一种设置准则,其基本特征就是把资源(常量性质的和幂等性质的)不断的cache形成体系。为了做到这一点,把变动的放到最终的客户端而已。这个跟MVC有什么关系呢?
对于资源的操作,我们抽象出CRUD,正好可以用HTTP的PUT GET POST DELETE来对应,而这些操作原语本质上跟REST没有什么关系,虽然REST几乎是完全倾向于如此。
我觉得现在的问题是:URI(或者IRI)表达资源仍然没有考虑清楚,尤其是Ajax风格开始流行以后,mashup要求我们不仅仅用URI表达我所获得的整个资源,而要用URI表达组成整个资源的各个部分资源,它们或许来自不同的地方。但是我们的WebClient仍然只能为一个整体资源指定一个URI。
扯远了……


他后面的那段话好象和我的问题差不多:
URI(或者IRI)表达资源仍然没有考虑清楚,尤其是Ajax风格开始流行以后,mashup要求我们不仅仅用URI表达我所获得的整个资源,而要用URI表达组成整个资源的各个部分资源,它们或许来自不同的地方。但是我们的WebClient仍然只能为一个整体资源指定一个URI。

资源、URI、View、WEB页面,一团麻,无法自圆其说啊
   
0 请登录后投票
最后更新时间:2007-08-16
这个问题这么没有阿,我也刚学REST.
我的理解是REST中的资源是用户看到的资源,而非我们数据库中的资源,所以我认为产品是一个资源,至于里面有好多的"资源"(表),那只是在model中要解决的问题。
  不知道我的理解对不对??
   
0 请登录后投票
论坛首页 Ruby版 rails

跳转论坛:
JavaEye推荐