Added param_set_associations to auto set associations.
This commit is contained in:
parent
3b2baa8c9d
commit
5511b0594c
2 changed files with 36 additions and 1 deletions
|
@ -63,6 +63,7 @@ class ApplicationController < ActionController::Base
|
||||||
@_current_user = User.find( session[:user_id] )
|
@_current_user = User.find( session[:user_id] )
|
||||||
end
|
end
|
||||||
def current_user_set(user)
|
def current_user_set(user)
|
||||||
|
session[:user_id] = user.id
|
||||||
@_current_user = user
|
@_current_user = user
|
||||||
set_user
|
set_user
|
||||||
end
|
end
|
||||||
|
@ -262,6 +263,9 @@ class ApplicationController < ActionController::Base
|
||||||
# save object
|
# save object
|
||||||
generic_object.save!
|
generic_object.save!
|
||||||
|
|
||||||
|
# set relations
|
||||||
|
generic_object.param_set_associations( params )
|
||||||
|
|
||||||
model_create_render_item(generic_object)
|
model_create_render_item(generic_object)
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
puts e.message.inspect
|
puts e.message.inspect
|
||||||
|
@ -282,6 +286,10 @@ class ApplicationController < ActionController::Base
|
||||||
|
|
||||||
# save object
|
# save object
|
||||||
generic_object.update_attributes!( object.param_cleanup( params[object.to_app_model_url] ) )
|
generic_object.update_attributes!( object.param_cleanup( params[object.to_app_model_url] ) )
|
||||||
|
|
||||||
|
# set relations
|
||||||
|
generic_object.param_set_associations( params )
|
||||||
|
|
||||||
model_update_render_item( generic_object )
|
model_update_render_item( generic_object )
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
logger.error e.message
|
logger.error e.message
|
||||||
|
|
|
@ -73,6 +73,33 @@ returns
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
|
|
||||||
|
set rellations of model based on params
|
||||||
|
|
||||||
|
result = Model.param_set_associations(params)
|
||||||
|
|
||||||
|
returns
|
||||||
|
|
||||||
|
result = true|false
|
||||||
|
|
||||||
|
=end
|
||||||
|
|
||||||
|
def param_set_associations(params)
|
||||||
|
|
||||||
|
# set relations
|
||||||
|
self.class.reflect_on_all_associations.map { |assoc|
|
||||||
|
real_key = assoc.name.to_s[0,assoc.name.to_s.length-1] + '_ids'
|
||||||
|
if params.has_key?( real_key.to_sym )
|
||||||
|
list = []
|
||||||
|
params[ real_key.to_sym ].each {|item|
|
||||||
|
list.push( assoc.klass.find(item) )
|
||||||
|
}
|
||||||
|
self.send( assoc.name.to_s + '=', list )
|
||||||
|
end
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
=begin
|
||||||
|
|
||||||
remove all not used params of object (per default :updated_at, :created_at, :updated_by_id and :created_by_id)
|
remove all not used params of object (per default :updated_at, :created_at, :updated_by_id and :created_by_id)
|
||||||
|
|
||||||
result = Model.param_validation(params)
|
result = Model.param_validation(params)
|
||||||
|
|
Loading…
Reference in a new issue