Use ! version of find_by_permalink to recover on missing resource

This commit is contained in:
Maikel Linke
2015-10-21 15:42:28 +11:00
parent 6781051fe6
commit adf0a84669
2 changed files with 7 additions and 5 deletions

View File

@@ -9,7 +9,7 @@ module Admin
def move_up
EnterpriseGroup.with_isolation_level_serializable do
@enterprise_group = EnterpriseGroup.find_by_permalink params[:enterprise_group_id]
@enterprise_group = find_resource
@enterprise_group.move_higher
end
redirect_to main_app.admin_enterprise_groups_path
@@ -17,7 +17,7 @@ module Admin
def move_down
EnterpriseGroup.with_isolation_level_serializable do
@enterprise_group = EnterpriseGroup.find_by_permalink params[:enterprise_group_id]
@enterprise_group = find_resource
@enterprise_group.move_lower
end
redirect_to main_app.admin_enterprise_groups_path
@@ -34,9 +34,11 @@ module Admin
alias_method_chain :build_resource, :address
# Overriding method on Spree's resource controller,
# so that resources are found using permalink
# so that resources are found using permalink.
# The ! version is important to raise a RecordNotFound error.
def find_resource
EnterpriseGroup.find_by_permalink(params[:id])
permalink = params[:id] || params[:enterprise_group_id]
EnterpriseGroup.find_by_permalink!(permalink)
end
private

View File

@@ -12,7 +12,7 @@ module Admin
end
def load_enterprise
@enterprise = Enterprise.find_by_permalink params[:enterprise_id]
@enterprise = Enterprise.find_by_permalink! params[:enterprise_id]
end
def load_properties