我的模特
class Client < ActiveRecord::Base
attr_accessible :name
has_many :bookings
validates_presence_of :name
end
class Agent < ActiveRecord::Base
attr_accessible :name
has_many :bookings
validates_presence_of :name
end
class Booking < ActiveRecord::Base
attr_accessible :booking_time, :agent_id
belongs_to :client
belongs_to :agent
validates_presence_of :booking_time
end
这是我的目标。我希望从代理商和客户端一起查看预订,但预订控制器的索引方法如何处理路线?
agents/agent_id/bookings and clients/client_id/bookings
?
第二个问题:只有客户创建预订,但我如何正确维护预订和代理之间的关系?
def create
@client = Client.find(params[:client_id])
@booking = @client.bookings.build(params[:booking])
@agent = Agent.find(params[:booking][:agent_id])
@agent.bookings << @booking
if (@booking.save and @agent.save)
redirect_to [@client, @booking]
else
render :action => "new", :notice => "Booking could not be created"
end
end
答案 0 :(得分:3)
至于第一个问题,你只需将它放在你的路线(config / routes.rb)中:
resources :agents do
resources :bookings
end
resources :clients do
resources :bookings
end
这将在您的网址上创建嵌套。有关Rails指南的更多信息:http://guides.rubyonrails.org/routing.html
关于第二个问题:我不确定你要做什么。这实际上取决于你的目标是从代理商和预订中拯救。我不知道它们之间的行为是如何起作用的。
您如何测试您的申请?