首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails,REST,哪个控制器显示什么?

Rails,REST,哪个控制器显示什么?
EN

Stack Overflow用户
提问于 2012-12-24 04:40:46
回答 3查看 89关注 0票数 1

我有一个管理Users的控制器和另一个用于Reservations的控制器。

显示特定用户所有预订的代码应该放在哪里?

这是在User控制器还是在Reservation控制器中完成的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-24 04:45:59

那得看情况。如果您正在处理一个嵌套的资源(换句话说,您希望能够访问像/users/4321/reservations这样的资源),那么您应该考虑一下this Railscast,它对于Rails2来说已经过时了,但是仍然很有用。

您可能希望将代码放在index操作下的ReservationsController中,但这取决于您计划做什么。尽管如此,这样的事情还是有意义的:

代码语言:javascript
运行
复制
class ReservationsController < ApplicationController
  def index
    @reservations = Reservations.where(user: params[:user_id])
  end
end
票数 2
EN

Stack Overflow用户

发布于 2012-12-24 04:47:42

我觉得你有点离谱了.你的模型应该有一个关联;例如:

代码语言:javascript
运行
复制
User < ActiveRecord::Base
 has_many :reservations
end

您的UserController#show可能是

代码语言:javascript
运行
复制
def show
 @user = User.find(params["id")
end

然后,视图将具有类似以下内容:

代码语言:javascript
运行
复制
<ul>
    <% @user.reservations.each do |r| %>
    <li><%= r.details =%></li>
    <% end %>
</ul>

关联打开它,这样您就可以从其中任何一个调用所需的对象。您可以很容易地在保留视图中显示@reservation.user.name

票数 0
EN

Stack Overflow用户

发布于 2012-12-24 04:47:44

显示特定用户所有预订的代码应该放在哪里?

那得看情况。如果您希望在特定用户的详细信息页面(/users/42)上显示该用户的预订,那么UsersController#show操作是非常合理的。如果您想创建一个搜索表单,那么它基本上就是ReservationsControler#index操作上的一个过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14014546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档