lib/risosu_san.rb in matsimitsu-risosu-san-0.1.1 vs lib/risosu_san.rb in matsimitsu-risosu-san-0.1.2
- old
+ new
@@ -7,10 +7,12 @@
# Adds a before filter which will take care of finding the parent resource.
#
# class PasswordsController < ActionController::Base
# find_parent_resource :only => :new, :field => 'slug'
# end
+ #
+ # :field setting is optional, if used and record is not found, there is a fallback to ID
def find_parent_resource(options = {})
if options[:field] then
field = options[:field]
options.delete(:field)
end
@@ -62,10 +64,10 @@
# find_parent_resource, :field => 'slug'
# @parent_resource # => #<Member id: 24>
# @member # => #<Member id: 24>
def find_parent_resource(field=nil)
finder_sender = field ? "find_by_#{field}" : 'find'
- if @parent_resource.nil? && nested? && @parent_resource = parent_resource_params[:class].send(finder_sender, parent_resource_params[:id])
+ if @parent_resource.nil? && nested? && @parent_resource = parent_resource_params[:class].send(finder_sender, parent_resource_params[:id]) || parent_resource_params[:class].send('find', parent_resource_params[:id])
instance_variable_set("@#{parent_resource_params[:name]}", @parent_resource)
end
@parent_resource
end
end
\ No newline at end of file