所以,我有一些奇怪的控制器/視圖設置,編輯產品模型對象出現在列表控制器/視圖中。這是爲什麼這是一個冗長的解釋,但我離題了。但是,當我提交表單時,出現錯誤Couldn't find Product without an ID
。是什麼賦予了?奇怪的是,當我查看與請求一起發送的參數時,ID屬性被分配給'格式'鍵。 ?!導軌形成故障
控制器代碼非常簡單。編輯動作:
def edit
@edit = Product.find(params[:id])
end
更新操作:
def update
@edit = Product.find(params[:id])
if @edit.save
redirect_to :url => listings_display_path
end
end
這裏是我的form_for代碼:
<% form_for @edit, :url => (listings_update_path(@edit)) do |f| %>
編輯,跟蹤:
{"utf8"=>"âœ「",
"_method"=>"put",
"authenticity_token"=>"st17LW0S9uENaV8UBcxKUfRH67oo+r3TuFAxiPKMCEc=",
"product"=>{"brand"=>"test_brand",
"productname"=>"test_product",
"category"=>"test_category",
"regprice"=>"4",
"saleprice"=>"2",
"description"=>"description"},
"commit"=>"Submit",
"format"=>"21"}
編輯:routes.rb中
resources :product do
resources :promotions
collection do
get "replace"
end
end
#listings
match 'listings/index' => 'listings#index'
match 'listings/display' => 'listings#display'
match 'listings/edit' => 'listings#edit'
match 'listings/update' => 'listings#update'
編輯:創建行動
def create
@product = Product.new(params[:product])
@product.user = current_user
if @product.save
redirect_to :action => 'index'
end
end
是什麼'listings_update_path'?它在哪裏領先?顯示此操作代碼。通常它是'update_litings_path'或甚至只有'listings_path'和'PUT'方法 – fl00r 2011-04-11 18:00:49
這導致上面顯示的更新操作。耙路線告訴我這是'listings_update_path'.. – providence 2011-04-11 18:01:40
爲什麼你不遵循約定路由和命名? – fl00r 2011-04-11 18:02:20