Rails,从网格中删除有效,但出现奇怪的异常
Rails, deleting from grid works, but I get a weird exception
我已经用 wice_grid gem 创建了一个网格,我正在尝试在每个条目上添加一个删除按钮。
我的html如下:
<%= grid(@business_grid) do |g|
g.column name: 'ID' do |business|
business.id
end
g.column name: 'Title' do |business|
business.title
end
g.column name: 'Description' do |business|
business.description
end
g.column name: 'PlayStore URL' do |business|
business.playstore_url
end
g.column name: 'AppStore URL' do |business|
business.appstore_url
end
g.column do |business|
link_to "Delete", {:controller=>"businesses", :action=>"delete_business",:business=>business.id}
end
end -%>
我的控制器中的任何一个:
class BusinessesController < ApplicationController
def create
@business = Business.new(:title => params[:title], :description => params[:description],
:playstore_url => params[:playstore_url], :appstore_url => params[:appstore_url])
if @business.save
render json: { status: 'success' }
else
render json: { status: 'error', errors: @business.errors.full_messages }
end
end
def destroy
@business = Business.find(params[:id])
@business.destroy
respond_to do |format|
format.html { render :partial => 'businessPartial'}
format.xml { head :ok }
end
end
end
删除功能确实有效,它确实删除了该项目,但随后我收到一个 ActionController 异常,提示找不到该对象
我好像删了再找,但不明白为什么。这是我单击删除 link 时得到的屏幕截图。
当我刷新的时候项目没有了,这意味着删除功能有效。
我尝试搜索,但没有找到任何具体信息。
任何帮助表示赞赏。
编辑 我的 development.log 文件仅按删除按钮后:
Started DELETE "/businesses/44" for 127.0.0.1 at 2016-04-15 11:33:34
+0300 [1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1mSELECT schema_migrations
.* FROM schema_migrations
[0m
Processing by BusinessesController#destroy as JS Parameters:
{"id"=>"44"} [1m[35mBusiness Load (0.4ms)[0m SELECT
businesses
.* FROM businesses
WHERE businesses
.id
= 44 LIMIT 1
[1m[36m (0.1ms)[0m [1mBEGIN[0m [1m[35mSQL (0.5ms)[0m
DELETE FROM businesses
WHERE businesses
.id
= 44 [1m[36m
(10.1ms)[0m [1mCOMMIT[0m Redirected to
http://localhost:3000admin_users/dashboard Completed 302 Found in 49ms
(ActiveRecord: 12.6ms)
Started DELETE "/businesses/44" for 127.0.0.1 at 2016-04-15 11:33:34
+0300 Processing by BusinessesController#destroy as JS Parameters: {"id"=>"44"} [1m[35mBusiness Load (0.3ms)[0m SELECT
businesses
.* FROM businesses
WHERE businesses
.id
= 44 LIMIT 1
Completed 404 Not Found in 16ms (ActiveRecord: 0.3ms)
ActiveRecord::RecordNotFound (Couldn't find Business with 'id'=44):
app/controllers/businesses_controller.rb:19:in `destroy'
Rendered
/var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_source.erb
(3.9ms) Rendered
/var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb (0.7ms) Rendered
/var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb
(0.9ms) Rendered
/var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb
(19.1ms)
我在我的视图控制器(称为仪表板)中初始化了@business_gird
def dashboard
@substore_grid = initialize_grid(Substore)
@business_grid = initialize_grid(Business)
@user_grid = initialize_grid(User)
end
rake 路线截图:
我的猜测是您的 'businessPartial' 部分正在尝试使用已删除的 @business
变量
format.html { render :partial => 'businessPartial'}
删除此行时出现错误吗?
我已经用 wice_grid gem 创建了一个网格,我正在尝试在每个条目上添加一个删除按钮。
我的html如下:
<%= grid(@business_grid) do |g|
g.column name: 'ID' do |business|
business.id
end
g.column name: 'Title' do |business|
business.title
end
g.column name: 'Description' do |business|
business.description
end
g.column name: 'PlayStore URL' do |business|
business.playstore_url
end
g.column name: 'AppStore URL' do |business|
business.appstore_url
end
g.column do |business|
link_to "Delete", {:controller=>"businesses", :action=>"delete_business",:business=>business.id}
end
end -%>
我的控制器中的任何一个:
class BusinessesController < ApplicationController
def create
@business = Business.new(:title => params[:title], :description => params[:description],
:playstore_url => params[:playstore_url], :appstore_url => params[:appstore_url])
if @business.save
render json: { status: 'success' }
else
render json: { status: 'error', errors: @business.errors.full_messages }
end
end
def destroy
@business = Business.find(params[:id])
@business.destroy
respond_to do |format|
format.html { render :partial => 'businessPartial'}
format.xml { head :ok }
end
end
end
删除功能确实有效,它确实删除了该项目,但随后我收到一个 ActionController 异常,提示找不到该对象
我好像删了再找,但不明白为什么。这是我单击删除 link 时得到的屏幕截图。
我尝试搜索,但没有找到任何具体信息。 任何帮助表示赞赏。
编辑 我的 development.log 文件仅按删除按钮后:
Started DELETE "/businesses/44" for 127.0.0.1 at 2016-04-15 11:33:34 +0300 [1m[36mActiveRecord::SchemaMigration Load (0.3ms)[0m [1mSELECT
schema_migrations
.* FROMschema_migrations
[0m Processing by BusinessesController#destroy as JS Parameters: {"id"=>"44"} [1m[35mBusiness Load (0.4ms)[0m SELECTbusinesses
.* FROMbusinesses
WHEREbusinesses
.id
= 44 LIMIT 1 [1m[36m (0.1ms)[0m [1mBEGIN[0m [1m[35mSQL (0.5ms)[0m DELETE FROMbusinesses
WHEREbusinesses
.id
= 44 [1m[36m (10.1ms)[0m [1mCOMMIT[0m Redirected to http://localhost:3000admin_users/dashboard Completed 302 Found in 49ms (ActiveRecord: 12.6ms)Started DELETE "/businesses/44" for 127.0.0.1 at 2016-04-15 11:33:34 +0300 Processing by BusinessesController#destroy as JS Parameters: {"id"=>"44"} [1m[35mBusiness Load (0.3ms)[0m SELECT
businesses
.* FROMbusinesses
WHEREbusinesses
.id
= 44 LIMIT 1 Completed 404 Not Found in 16ms (ActiveRecord: 0.3ms)ActiveRecord::RecordNotFound (Couldn't find Business with 'id'=44):
app/controllers/businesses_controller.rb:19:in `destroy'Rendered /var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_source.erb (3.9ms) Rendered /var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb (0.7ms) Rendered /var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb (0.9ms) Rendered /var/lib/gems/2.1.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb (19.1ms)
我在我的视图控制器(称为仪表板)中初始化了@business_gird
def dashboard
@substore_grid = initialize_grid(Substore)
@business_grid = initialize_grid(Business)
@user_grid = initialize_grid(User)
end
rake 路线截图:
我的猜测是您的 'businessPartial' 部分正在尝试使用已删除的 @business
变量
format.html { render :partial => 'businessPartial'}
删除此行时出现错误吗?