我有這些相關的控制器型號:缺少所需參數 - 軌道
class VendorsController < ApplicationController
def vendor_params
params.require(:vendor).permit(:id, :name, :address, :image, :latitude, :longitude)
end
def create
vendor = Vendor.create(vendor_params)
flash[:success] = "Vendor Created"
redirect_to vendors_mgmt_path
end
end
當我嘗試創建一個新的供應商對象,我得到以下錯誤:
Required parameter missing: vendor
這裏是我的表格:
<%= form_tag({controller: "vendors", action: "create"}, method: "post", multipart: true) do %>
<%= text_field_tag :name, "Store Name" %>
<%= text_field_tag :address, "Store Address" %>
<%= file_field_tag :image %>
<%= submit_tag "Save", class: "btn btn-success" %>
<% end %>
而且我對賣方表遷移:
class CreateVendors < ActiveRecord::Migration
def change
create_table :vendors do |t|
t.string :name
t.string :address
t.float :latitude
t.float :longitude
t.string :image
t.timestamps
end
end
end
有沒有人看到一個線索,爲什麼我可能會得到這個錯誤?我不明白如何:vendor
本身是一個參數...任何幫助非常感謝。提前致謝!
這是我更新的形式:
<%= form_for @vendor, multipart: true do |f| %>
<%= f.text_field :name, "Store Name" %>
<%= f.text_field :address, "Store Address" %>
<%= f.file_field :image %>
<%= f.submit "Save", class: "btn btn-success" %>
<% end %>
我雖然沒有得到這個錯誤:
undefined method `merge' for "Store Name":String
從我已經做了搜索,這聽起來像鐵軌方法merge
只有作品在哈希上,而不是字符串。我不知道爲什麼它會試圖合併這個,除非我的表單沒有正確創建一個散列?
我的新動作:
def new
@vendors = Vendor.all
@vendor = Vendor.new
end
服務器日誌
Started GET "/vendors/new" for 127.0.0.1 at 2013-10-23 08:04:04 -0700
Processing by VendorsController#new as HTML
Vendor Load (0.3ms) SELECT "vendors".* FROM "vendors"
Rendered vendors/new.html.erb within layouts/application (2.0ms)
Completed 500 Internal Server Error in 18ms
ActionView::Template::Error (undefined method `merge' for "Store Name":String):
5: <h4>New Vendor Form</h4>
6:
7: <%= form_for @vendor, multipart: true do |f| %>
8: <%= f.text_field :name, "Store Name" %>
9: <%= f.text_field :address, "Store Address" %>
10: <%= f.file_field :image %>
11: <%= f.submit "Save", class: "btn btn-success" %>
app/views/vendors/new.html.erb:8:in `block in _app_views_vendors_new_html_erb__2593637676836103609_2161482240'
app/views/vendors/new.html.erb:7:in `_app_views_vendors_new_html_erb__2593637676836103609_2161482240'
Rendered /Users/******/.rvm/gems/ruby-2.0.0-p195/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.8ms)
Rendered /Users/******/.rvm/gems/ruby-2.0.0-p195/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.4ms)
Rendered /Users/******/.rvm/gems/ruby-2.0.0-p195/gems/actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (11.9ms)
這是一個很好的答案。很高興知道有關強大的參數和形式。你會檢查我現在被拋出的錯誤嗎?我已經用它更新了我的問題。 – settheline
沒問題!有關於該錯誤的更多信息?我看不到任何你稱之爲「合併」命令的地方,並且很高興看到任何其他信息可以提供:) –
謝謝!更新錯誤的服務器日誌。 – settheline