Joshua
Joshua

Reputation: 371

Saving parameters from hidden_field to model

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

Answers (1)

Ahmed ElBayaa
Ahmed ElBayaa

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

Related Questions