現在我正在做一個雜貨網站。我試圖建立一個可以選擇選擇供應商和出口的訂單表格,因此管理員可以通過選擇哪個供應商和出口來創建訂單,但現在出現錯誤說未經允許的引數。
訂單控制器
class OrdersController < ApplicationController
def supplier
@supplier = Supplier.find(params[:id])
end
def outlet
@outlet = Outlet.find(params[:id])
end
def index
@orders = Order.all
end
def show
@order = Order.find(params[:id])
end
def new
@order = Order.new
@supplier = Supplier.all
@outlet = Outlet.all
end
def create
@order = Order.new(order_params)
@supplier_id = Supplier.all
@outlet_id = Outlet.all
if @order.save
flash[:success] = "Succesful create!"
redirect_to @order
else
render 'new'
end
end
private
def order_params
params.require(:order).permit(:supplier_id,:grand_total, :order_date,
:delivery_date, :delivery_address, :outlet_id)
end
end
新的.html.erb
<% provide(:title, "Create Orders") %>
<h1>Create Order</h1>
<div >
<div >
<%= form_with(model: @order, local: true) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :supplier %>
<%= f.select(:supplier, Supplier.all.collect { |l| [ l.name, l.id] }, {class: "form-select"}) %>
<%= f.label :grand_total %>
<%= f.number_field :grand_total, class: 'form-control' %>
<%= f.label :order_date %>
<%= f.date_field :order_date, class: 'form-control' %>
<%= f.label :delivery_date %>
<%= f.date_field :delivery_date, class: 'form-control' %>
<%= f.label :delivery_address %>
<%= f.text_field :delivery_address, class: 'form-control' %>
<%= f.label :outlet %>
<%= f.select(:outlet, Outlet.all.collect { |l| [ l.name, l.id] }, {class: "form-select"}) %>
<%= f.submit "Create order", class: "btn btn-primary" %>
<% end %>
</div>
</div>
架構中的訂單遷移表
create_table "orders", force: :cascade do |t|
t.integer "supplier_id"
t.integer "grand_total"
t.date "order_date"
t.date "delivery_date"
t.string "delivery_address"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "outlet_id"
結尾
控制臺中的引數
網站錯誤
uj5u.com熱心網友回復:
你得到的原因
Unpermitted parameters: :supplier, :outlet
是因為你不允許:supplierand :outletparams 而是:supplier_idand :outlet_idin order_params
修復
在您的視圖中更改此設定new.html.erb
<%= f.label :supplier_id %>
<%= f.select(:supplier_id, Supplier.all.collect { |l| [ l.name, l.id] }, {class: "form-select"}) %>
<%= f.label :outlet_id %>
<%= f.select(:outlet_id, Outlet.all.collect { |l| [ l.name, l.id] }, {class: "form-select"}) %>
這應該通過允許:supplier_id和:outlet_id引數并為物件分配適當的值來解決問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/510035.html
標籤:轨道上的红宝石红宝石
上一篇:Products#show中的ArgumentError,“nil”不是ActiveModel兼容的物件。它必須實作:to_partial_path
