i am trying to create a form in my order
model. i've been wondering. can i display a new order_id
in my order_number
text field when creating new order??? i try
<%= form_for(@order, html: {class: 'form form-horizontal'}) do |f| %> <% if @order.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@order.errors.count, "error") %> prohibited this order from being saved:</h2> <ul> <% @order.errors.full_messages.each do |message| %> <li><%= message %></li> <% end %> </ul> </div> <% end %> <table class="table table-hover"> <tr> <td><%= f.label :staff_id %> </td> <td><%= f.collection_select :staff_id, Staff.all, :id, :staff_name, {:prompt => false}%> </td> </tr> <tr> <td><%= f.label :customer_id %> </td> <td><%= f.collection_select :customer_id, Customer.all, :id, :customer_name, {:prompt => false}%> </td> </tr> <tr> <td><%= f.label :service_id %> </td> <td><%= f.collection_select :service_id, Service.all, :id, :service_type, {:prompt => false}%> </td> </tr> <tr> <td><%= f.label :order_number %> </td> <td><%= f.text_field :order_number , :value => @order.id %> </td> </tr> <tr> <td><%= f.label :order_vehicle %> </td> <td><%= f.text_field :order_vehicle %> </td> </tr> <tr> <td><%= f.label :order_plate %> </td> <td><%= f.text_field :order_plate %> </td> </tr> <tr> <td><%= f.label :order_description %> </td> <td><%= f.text_field :order_description %> </td> </tr> <tr> <td><%= f.label :order_damage %> </td> <td><%= f.text_field :order_damage %> </td> </tr> <tr> <td><%= f.label :order_deposit %> </td> <td><%= f.number_field :order_deposit %> </td> </tr> <tr> <td><%= f.label :order_price %> </td> <td><%= f.number_field :order_price %> </td> </tr> <tr> <td><%= f.label :order_date %> </td> <td><%= f.date_select :order_date %> </td> </tr> <tr> <td><%= f.label "List of task" %> </td> <td><%= f.collection_check_boxes :task_ids, Task.all, :id, :task_name do |b| %> <div class="collection-check-box"> <%= b.check_box %> <%= b.label %> </div> <% end %> </td> </tr> <tr> <td> </td> <td><%= f.submit %> </td> </tr> </table> <% end %>
in the form when creating new order it show nothing.
the id
only appear when im editing the order
.
id
is generated after created. It should be a primary key in database table, and auto increase. In my option, the order number should generated by the system, and users can not modify it.
you can add a after_create
observer to set the order_number
class Order < ActiveRecord::Base
after_create :set_order_number
def set_order_number
self.update_attribute('order_number', self.id)
end
end
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.