我有一个管理Users的控制器和另一个用于Reservations的控制器。
显示特定用户所有预订的代码应该放在哪里?
这是在User控制器还是在Reservation控制器中完成的?
发布于 2012-12-24 04:45:59
那得看情况。如果您正在处理一个嵌套的资源(换句话说,您希望能够访问像/users/4321/reservations这样的资源),那么您应该考虑一下this Railscast,它对于Rails2来说已经过时了,但是仍然很有用。
您可能希望将代码放在index操作下的ReservationsController中,但这取决于您计划做什么。尽管如此,这样的事情还是有意义的:
class ReservationsController < ApplicationController
def index
@reservations = Reservations.where(user: params[:user_id])
end
end发布于 2012-12-24 04:47:42
我觉得你有点离谱了.你的模型应该有一个关联;例如:
User < ActiveRecord::Base
has_many :reservations
end您的UserController#show可能是
def show
@user = User.find(params["id")
end然后,视图将具有类似以下内容:
<ul>
<% @user.reservations.each do |r| %>
<li><%= r.details =%></li>
<% end %>
</ul>关联打开它,这样您就可以从其中任何一个调用所需的对象。您可以很容易地在保留视图中显示@reservation.user.name
发布于 2012-12-24 04:47:44
显示特定用户所有预订的代码应该放在哪里?
那得看情况。如果您希望在特定用户的详细信息页面(/users/42)上显示该用户的预订,那么UsersController#show操作是非常合理的。如果您想创建一个搜索表单,那么它基本上就是ReservationsControler#index操作上的一个过滤器。
https://stackoverflow.com/questions/14014546
复制相似问题