3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/learn_rails/associations/has_one.rb', line 3
def self.code_for(params)
associate_model = (params[:class_name] || params[:associate]).camelize
foreign_id = params[:foreign_key] || params[:model] + "_id"
primary_id = params[:primary_key] || "id"
<<-code.gsub(/^\s+/, '')
# def #{params[:associate]}(force_reload = false)
# @#{params[:associate]} = nil if force_reload
# @#{params[:associate]} ||= #{finder_method params, foreign_id, primary_id, associate_model}
# end
#{ setter_method(params, foreign_id, primary_id) unless params[:readonly] }
#
# def build_#{params[:associate]}(attributes = {})
# attributes[:#{foreign_id}] = self.#{primary_id}
# #{associate_model}.new(attributes)
# end
#
# def create_#{params[:associate]}(attributes = {})
# attributes[:#{foreign_id}] = self.#{primary_id}
# #{associate_model}.create(attributes)
# end
#
# def create_#{params[:associate]}!(attributes = {})
# attributes[:#{foreign_id}] = self.#{primary_id}
# #{associate_model}.create!(attributes)
# end
code
end
|