我正在尝试将service_name从隐藏字段保存到服务预订模型中的service_name列。服务有很多服务预订,有人可以帮忙吗?
///传递service_name以使用new_servicebooking_path
保存在servicebooking模型中<%= link_to 'Book this service', new_servicebooking_path(service_name: @service.name) %>
///服务秀视图中的隐藏字段:
<%= f.hidden_field :service_name, :value => @service.try(:name) %>
///在servicebookings控制器的新方法中定义@service变量
def new
@service = Service.find(params[:service_name])
@servicebooking = @service.servicebookings.new
end
//服务编辑表单
<%= f.hidden_field :service_name, @service.try(:name) %>
//要保存的服务预订模型设置服务名称
after_validation :set_service_name
def set_service_name
self.service_name = service.try(:name)
end
目前,服务预订模型中没有保存service_name
答案 0 :(得分:1)
是服务模型的主键是名称而不是id?如果没有,我相信上面的代码在执行@service = Service.find(params[:service_name])
你可以试试这个
在servicebookings controller
中def new
@service = Service.find_by_name(params[:service_name])
@servicebooking = @service.servicebookings.new(service_name: params[:service_name])
end
在servicebookings编辑表单中
<%= f.hidden_field :service_name %>