简体   繁体   中英

display rails id in new form text_field rails 4

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM