我有预订应用。有用户模型,服务模型和约会模型。
有许多用户可以创建许多服务。服务可以有很多约会。
我使用User#show页面与特定用户进行预订。在表单中有一个列出可用服务的选择框。然后,您可以为自己选择的服务添加时间。
我如何仅显示该特定用户的服务,即我所在页面的用户?
目前,它将列出所有用户创建的所有服务。
USERS CONTROLLER
class UsersController < ApplicationController
before_action :load_services, only: [:show]
def show
@user = User.find(params[:id])
@appointment = Appointment.new
end
private
def load_services
@services = Service.all.collect {|service| [ service.title, service.id] }
end
end
答案 0 :(得分:1)
有许多用户可以创建许多服务
由于用户拥有许多服务,您需要使用@ user.services(以获取与该用户相关的服务)而不是Service.all,请尝试:
def show
@user = User.find(params[:id])
@appointment = Appointment.new
@services = @user.services.collect {|service| [ service.title, service.id] }
end
并以您的形式
<%= f.select(:service_id, @services) %>