我有一个用于管理的控制器Users
和一个用于Reservations
.
显示特定用户的所有预订的代码应位于何处?
这是在User
控制器还是Reservation
控制器中完成?
问问题
92 次
3 回答
2
这取决于。如果您正在处理嵌套资源(换句话说,您希望能够访问类似的东西/users/4321/reservations
),您应该看看这个 Railscast,它在 Rails 2 中已经过时但仍然有用。
您可能想要的是将代码放在操作的ReservationsController
下方index
,但这取决于您打算做什么。尽管如此,这样的事情还是有道理的:
class ReservationsController < ApplicationController
def index
@reservations = Reservations.where(user: params[:user_id])
end
end
于 2012-12-23T20:45:58.713 回答
0
我认为你在这里有点偏离基础......你的模型应该有一个关联;例如:
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-23T20:47:42.497 回答
0
显示特定用户的所有预订的代码应位于何处?
这取决于。如果您想在他的详细信息页面 (/users/42) 上显示特定用户的预订,那么 UsersController#show 操作是完全合理的。如果你想创建一个搜索表单,那么它基本上是 ReservationsControler#index 操作的过滤器。
于 2012-12-23T20:47:43.653 回答