rails - form_for - how to have my 'Property' form update the 'Ticket' model? -


i have 3 tables- ownerofproperty , property , ticket. want make form using form_for represent property booking; can make form retrieve data property submit button saves data in ticket table? asking because have no idea if can possible or how make it.

note: have created relations : ownerofproperty one-to-many property

property one-to-one ticket

i need form make user able see avaliable properties , can book 1 , how make form ?

schema.rb 3 models :

create_table "owners", :force => true |t|     t.string   "f_name"     t.string   "l_name"     t.string   "address"     t.string   "tel_no"     t.datetime "created_at", :null => false     t.datetime "updated_at", :null => false   end    create_table "properties", :force => true |t|     t.string   "p_street"     t.string   "p_city"     t.string   "postcode"     t.string   "property_type"     t.integer  "rooms"     t.integer  "rent"     t.integer  "owner_id"     t.datetime "created_at",    :null => false     t.datetime "updated_at",    :null => false   end    add_index "properties", ["owner_id"], :name => "index_properties_on_owner_id"    create_table "tickets", :force => true |t|     t.string   "city"     t.string   "street"     t.string   "ticket_type"     t.integer  "rooms"     t.integer  "rent"     t.integer  "property_id"     t.datetime "created_at",  :null => false     t.datetime "updated_at",  :null => false   end    add_index "tickets", ["property_id"], :name => "index_tickets_on_property_id" 

yes, possible.

let's see ticket_controller.rb

def new   @property = property.find 20  #20 property id   @properties = property.all   #@ticket = ticket.new end 

now in view (where want create form):

<%= form_for @ticket |f| %> <%= f.select :property_id, @properties.collect {|p| [ p.name, p.id ] }%> <!-- example, ticket model has field named "property_id" --> <%= f.submit %> <%= end %> 

this form submits create action of ticket_controller. , able data params , save table.

def create @ticket = ticket.new(params[:ticket]) @ticket.save   respond_to |format|     format.html{redirect_to( your_desired_path)}   end end 

Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -