Reputation: 371
I am trying to save a service_name from a hidden field to a service_name column in a servicebooking model. Service has many servicebookings, can anyone help?
///passing service_name to be saved in servicebooking model with new_servicebooking_path
<%= link_to 'Book this service', new_servicebooking_path(service_name: @service.name) %>
///hidden fields in service show view:
<%= f.hidden_field :service_name, :value => @service.try(:name) %>
///Defining @service variable in servicebookings controller's new method
def new
@service = Service.find(params[:service_name])
@servicebooking = @service.servicebookings.new
end
//Services edit form
<%= f.hidden_field :service_name, @service.try(:name) %>
//Servicebooking model setting service name to be saved
after_validation :set_service_name
def set_service_name
self.service_name = service.try(:name)
end
Currently no service_name is saved in the servicebooking model???
Upvotes: 0
Views: 66
Reputation: 266
is the primary key of the service model is the name instead of the id? if not, i believe the code above should raise an error while executing @service = Service.find(params[:service_name])
You can try this
in servicebookings controller
def new
@service = Service.find_by_name(params[:service_name])
@servicebooking = @service.servicebookings.new(service_name: params[:service_name])
end
in servicebookings edit form
<%= f.hidden_field :service_name %>
Upvotes: 1