您好同事程序员,我正在构建一个应用程序,可以向现有客户添加订单。到目前为止,我可以添加一个客户。但一周之后,我坚持向顾客添加订单。我是新的铁轨(一个月)。我已经关联了客户和ID模型。这是我的代码。向现有客户添加订单
更新: CUSTOMER_ID是在顺序表中一个ForeignKey
客户控制器
class CustomerController < ApplicationController
def index
@customers = Customer.sorted
end
def new
@customers = Customer.new
#hij creert een nieuwe subject
end
def create
#Instantiate a new object using form paramters
@customer = Customer.new(customer_params)
#Save the object
if @customer.save
#If save succeeds, redirect to the inex acton
flash[:notice] = "Subject created successfully"
redirect_to(:action => 'index')
else
#If save fails, redisplay the form so user can fix problems
render('new') #het zit in de new.html template
end
end
def show
@customers = Customer.find(params[:id])
end
def edit
@customer = Customer.find(params[:id])
end
def delete
@customer = Customer.find(params[:id])
end
def destroy
customer = Customer.find(params[:id]).destroy #deze is zonder @ omdat het geen template rendert
flash[:notice] = "Subject '#{customer.first_name}' destroyed successfully"
redirect_to(:action => 'index')
end
private
def customer_params
params.require(:customer).permit(:first_name, :last_name)
end
end
阶控制器
class OrderController < ApplicationController
def index
@order = Order.find(params[:customer_id])
end
def new
@orders = Order.new
end
def create
@order = Order.new(order_params)
if @order.save
flash[:notice] = "Subject created successfully"
redirect_to(:action => 'index')
else
render 'customers/show'
end
end
end
def show
@order = Order.find(params[:customer_id])
end
def edit
end
def delete
end
private
def order_params
params.require(:order).permit(:customer_id, :pakket, :verstuurt)
end
客户展示查看
<% if !flash[:notice].blank? %>
<div class="notice">
<%= flash[:notice] %>
<% end %>
<%= link_to("<< Back to List", {:action => 'index'}, :class => 'back-link') %>
<div class="subjects show">
<h2><%[email protected]_name %></h2>
<%= link_to("View Pages", {:controller => 'order', :customer_id => @customers.id}, :class => 'action show') %>
<%= link_to("Edit", {:action => 'edit', :id => @customers.id}, :class => 'action edit') %>
<%= link_to("Delete",{:action => 'delete', :id => @customers.id}, :class => 'action delete') %>
<%= link_to("Create",{:controller => 'order/create', :customer_id => @customers.id}, :class => 'action create') %>
</div>
创建新订单到现有的客户页面
<%= link_to("<< Back to List", {:action => 'index'}, :class => 'back-link') %>
<div class="subject new">
<h2>Create Subject</h2>
<%= form_for @order do |f| %>
<table summary="subject form fields">
<tr>
<th>Package</th>
<td><%= f.text_field(:pakket) %></td>
</tr>
<tr>
<th>Sent</th>
<td><%= f.text_field(:verstuurt) %></td>
</tr>
</table>
<div class="form-buttons">
<%= submit_tag("Create Subject") %>
</div>
<% end %>
</div>
客户型号
订货型号
Order类<的ActiveRecord :: Base的
belongs_to :customer
accepts_nested_attributes_for :customer
scope :visible, lambda { where(:visible => true) }
scope :invisible, lambda { where(:visible => false) }
scope :sorted, lambda { sorted("orders") }
scope :newest_first, lambda { order("orders.created_at DESC")}
scope :search, lambda {|query|
where(["name LIKE ?", "%#{query}%"])}
end
错误
ActionController::ParameterMissing in OrderController#create
param is missing or the value is empty: order
Extracted source (around line #34):
32
33
34
35
36
private
def order_params
params.require(:order).permit(:customer_id, :pakket, :verstuurt)
end
服务器日志
Started GET "/order/create?customer_id=9" for ::1 at 2015-11-18 14:47:40 +0100
Processing by OrderController#create as HTML
Parameters: {"customer_id"=>"9"}
Customer Load (0.1ms) SELECT "customers".* FROM "customers" WHERE "customers"."id" = ? LIMIT 1 [["id", 9]]
Completed 400 Bad Request in 2ms (ActiveRecord: 0.1ms)
ActionController::ParameterMissing (param is missing or the value is empty: order):
app/controllers/order_controller.rb:33:in `order_params'
app/controllers/order_controller.rb:14:in `create'
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/_source.erb (4.1ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.0ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.0ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.4/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (56.6ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/_markup.html.erb (0.4ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.4ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.4ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.4ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/console.js.erb within layouts/javascript (49.7ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/main.js.erb within layouts/javascript (0.4ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.5ms)
Rendered /Users/cecil/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/web-console-2.2.1/lib/web_console/templates/index.html.erb (111.1ms)
你的模型呢? Order模型和Customer模型都是? –
你有什么错误?你想要解决什么问题? –
@Sunnyk刚刚发布了它 –