Ruby on rails 自定义控制器操作不工作
希望有人能指出我在这里的错误。我有一个带有自定义操作和标准提交按钮的表单:Ruby on rails 自定义控制器操作不工作,ruby-on-rails,ruby,Ruby On Rails,Ruby,希望有人能指出我在这里的错误。我有一个带有自定义操作和标准提交按钮的表单: = form_for( @property, :html => {:data => {:abide => ''}, :id => 'property-edit-form'},:url => url_for(:action => 'update_promo')) do |f| 路线如下: post 'properties/update_promo', :as => 'updat
= form_for( @property, :html => {:data => {:abide => ''}, :id => 'property-edit-form'},:url => url_for(:action => 'update_promo')) do |f|
路线如下:
post 'properties/update_promo', :as => 'update_promo'
控制器操作为:
def update_promo
@property = Property.find(params[:id])
if @property.update(property_params)
respond_to do |format|
format.html
format.js
end
else
render 'edit'
end
end
问题是它仍然在调用默认的更新操作。我得到了一个错误:
Couldn't find Property with 'id'=update_promo
有人能帮忙吗
全航线
get 'users/index'
get 'home/index'
get 'properties/update_regions', :as => 'update_regions'
get 'properties/update_places', :as => 'update_places'
get 'properties/update_map', :as => 'update_map'
get 'properties/update_promo', :as => 'update_promo'
root 'home#index'
post "versions/:id/revert" => "versions#revert", :as => "revert_version"
resources :properties
resources :users do
collection do
get :properties # add this line
end
end
您可能正在方法化提交,因此正在使用id update\u promo调用show方法,请尝试添加
:method => :post
到你的表格
要进行检查,请在提交时查看日志,
如果您的日志以
Started GET
而不是
Started POST
您需要添加所述参数以形成_for您可能正在方法化提交,因此正在使用id update调用show方法,请尝试添加
:method => :post
到你的表格
要进行检查,请在提交时查看日志,
如果您的日志以
Started GET
而不是
Started POST
您需要将所述参数添加到表单中,以便更新routes.rb文件的行:
get 'properties/update_promo', :as => 'update_promo'
为此:
post 'properties/update_promo', :as => 'update_promo'
此外,您可以将表单更改为如下所示:
= form_for( @property, :html => {:data => {:abide => ''}, :id => 'property-edit-form'},:url => update_promo_path)) do |f|
对于(:action=>…)更新routes.rb文件的行,您可以使用url帮助程序而不是
url\u:
get 'properties/update_promo', :as => 'update_promo'
为此:
post 'properties/update_promo', :as => 'update_promo'
此外,您可以将表单更改为如下所示:
= form_for( @property, :html => {:data => {:abide => ''}, :id => 'property-edit-form'},:url => update_promo_path)) do |f|
对于(:action=>…)
您可以使用url帮助程序而不是url\u来发布更多路由文件吗?看起来问题在于路线的顺序,但这将有助于查看。谢谢Dave,在上面添加。尝试:action=>更新\u promo\u path
我不确定这是否有效,这就是为什么在评论中发布它。你能发布更多路线文件吗?看起来问题在于路线的顺序,但这将有助于查看。谢谢Dave,在上面添加。尝试:action=>更新\u promo\u path
我不确定这是否有效,这就是为什么在评论中发布它。谢谢,这也有帮助。谢谢,这也有帮助。欢迎你,伙计!此外,请尝试使用url帮助程序而不是:action=>..
,因为您可以在一个位置将帮助程序名称更改为任何名称,但如果更改action名称,则必须在代码库中的任何位置更新它。警告:)不客气,伙计!此外,请尝试使用url帮助程序而不是:action=>..
,因为您可以在一个位置将帮助程序名称更改为任何名称,但如果更改action名称,则必须在代码库中的任何位置更新它。警告:)