Guest User

Untitled

a guest
May 13th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.67 KB | None | 0 0
  1. # model.rb (as in "runway model")
  2.  
  3. class Model < ActiveRecord::Base
  4. belongs_to :user
  5.  
  6. belongs_to :city
  7. validates_associated :city
  8.  
  9. belongs_to :region
  10. belongs_to :country
  11. belongs_to :body_type
  12. belongs_to :skin_color
  13.  
  14. has_many :pics
  15.  
  16. def sorted_pics
  17. self.pics.sort{ |p1, p2| p1.order <=> p2.order }
  18. end
  19.  
  20. has_many :job_type_preferences, :dependent => :destroy
  21. has_many :job_types, :through => :job_type_preferences
  22.  
  23. has_many :region_preferences, :dependent => :destroy
  24. has_many :regions, :through => :region_preferences
  25.  
  26. has_many :language_preferences, :dependent => :destroy
  27. has_many :languages, :through => :language_preferences
  28.  
  29. attr_accessor :job_type_preference_ids # This is an array of job type ids as strings coming from the form of checkboxes.
  30. after_save :update_job_type_preferences
  31.  
  32. def update_job_type_preferences
  33. unless job_type_preference_ids.nil?
  34. self.job_types.each do |m|
  35. # Take out the job types we're not interested in anymore.
  36. m.destroy unless job_type_preference_ids.include?(m.id.to_s)
  37. # We don't have to add it if it's already there in the database.
  38. job_type_preference_ids.delete(m.id.to_s)
  39. end
  40. # Go through the remaining ones that are in the array, but not yet in the database.
  41. job_type_preference_ids.each do |g|
  42. self.job_type_preferences.create(:job_type_id => g) unless g.blank?
  43. end
  44. reload
  45. self.job_type_preference_ids = nil
  46. end
  47. end
  48.  
  49. attr_accessor :region_preference_ids # This is an array of job type ids as strings coming from the form of checkboxes.
  50. after_save :update_region_preferences
  51.  
  52. def update_region_preferences
  53. unless region_preference_ids.nil?
  54. self.regions.each do |m|
  55. # Take out the job types we're not interested in anymore.
  56. m.destroy unless region_preference_ids.include?(m.id.to_s)
  57. # We don't have to add it if it's already there in the database.
  58. region_preference_ids.delete(m.id.to_s)
  59. end
  60. # Go through the remaining ones that are in the array, but not yet in the database.
  61. region_preference_ids.each do |g|
  62. self.region_preferences.create(:region_id => g) unless g.blank?
  63. end
  64. reload
  65. self.region_preference_ids = nil
  66. end
  67. end
  68.  
  69. attr_accessor :language_preference_ids # This is an array of job type ids as strings coming from the form of checkboxes.
  70. after_save :update_language_preferences
  71. def update_language_preferences
  72. unless language_preference_ids.nil?
  73. self.languages.each do |m|
  74. # Take out the job types we're not interested in anymore.
  75. m.destroy unless language_preference_ids.include?(m.id.to_s)
  76. # We don't have to add it if it's already there in the database.
  77. language_preference_ids.delete(m.id.to_s)
  78. end
  79. # Go through the remaining ones that are in the array, but not yet in the database.
  80. language_preference_ids.each do |g|
  81. self.language_preferences.create(:language_id => g) unless g.blank?
  82. end
  83. reload
  84. self.language_preference_ids = nil
  85. end
  86. end
  87.  
  88.  
  89. #models_controller.rb
  90. class ModelsController < ResourceController::Base
  91.  
  92. create.response do |wants|
  93. wants.html{
  94. @user = User.new( params[ :user ] )
  95.  
  96. @country = Country.find( params[ :user ][ :country_id ] ) if ! params[:user][:country_id].blank?
  97. @user.country = @country
  98.  
  99. @region = Region.find( params[ :user ][ :region_id ] ) if ! params[:user][:region_id].blank?
  100. @user.region = @region
  101.  
  102. @city = City.find( params[ :user ][ :city_id ] ) if ! params[:user][:city_id].blank?
  103. @user.city = @city
  104.  
  105. @model = Model.new( params[ :model ] )
  106. @model.user = @user
  107.  
  108.  
  109. if @user.save && @model.errors.blank? && @model.errors.blank?
  110. flash[:notice] = "Thanks for registering!"
  111. @object = @model
  112. render :action => :show
  113. else
  114. flash[:notice] = "There were errors."
  115. flash[:errors] = @model.errors
  116. redirect_to new_model_path
  117. end
  118.  
  119. }
  120. end
  121.  
  122.  
  123. # /views/model/new.html.haml
  124. .registration_format
  125. .error= error_messages_for :model, :user
  126.  
  127. - form_for(:model, :url => collection_url) do |f|
  128. = render :partial => "form", :locals => { :f => f }
  129. %p= submit_tag "Register", :id => 'register_submit_button'
  130.  
  131.  
  132. # _form.html.haml
  133.  
  134. %h3 General Info:
  135. %table
  136. %tr
  137. %td
  138. %label{:for => "first_name"} First Name:
  139. %td
  140. =text_field :user, :first_name
  141. %tr
  142. %td
  143. %label{:for => "last_name"} Last Name:
  144. %td
  145. =text_field :user, :last_name
  146. %tr
  147. %td
  148. %label{:for => "user_input_mobile_phone"} Mobile phone:
  149. %td
  150. =text_field :user, :input_mobile_phone
  151. %tr
  152. %td
  153. %label{:for => "email"} Email:
  154. %td
  155. =text_field :user, :email
  156. .white_note * Note: This email will be used as your login id.
  157.  
  158. - if !logged_in?
  159. %tr
  160. %td
  161. %label{:for => "password"} Password:
  162. %td
  163. =password_field :user, :password
  164. %tr
  165. %td
  166. %label{:for => "password_confirmation"} Confirm Password:
  167. %td
  168. =password_field :user, :password_confirmation
  169.  
  170. %tr
  171. %td
  172. %label{:for => "country"} Country:
  173. %td
  174. = select 'user', 'country_id', Country.find(:all).collect { |c| [c.name, c.id] }
  175.  
  176. %tr
  177. %td
  178. %label{:for => "region"} Region:
  179. %td
  180. = select 'user', 'region_id', Region.find(:all).collect {|r| [r.name, r.id] }, { :include_blank => true }
  181.  
  182. %tr
  183. %td
  184. %label{:for => "city_id"} City:
  185. %td
  186. = select 'user', 'city_id', City.find( :all, :order => :name ).collect{ |c| [c.name, c.id] }, { :include_blank => true }
  187.  
  188. %tr
  189. %td
  190. %label{:for => "address"} Address:
  191. %td
  192. = text_area :user, :address, :cols => 30, :rows => 5
  193.  
  194. %tr
  195. %td
  196. %label{:for => "user_birth_day"} Birth Date:
  197. %td
  198. = date_select 'user', 'birth_day', :start_year => 1950, :end_year => 2005, :order => [:month, :day, :year]
  199.  
  200. %br/
  201. %hr{ :width => '50%'}/
  202. %h3 Modeling Info:
  203. %table
  204. %tr
  205. %td
  206. %label{:for => "model_height"} Height:
  207. %td
  208. = select 'model', 'height_feet', (4..7).to_a, { :include_blank => true }
  209. '
  210. = select 'model', 'height_inches', (0..11).to_a, { :include_blank => true }
  211. "
  212. %tr
  213. %td
  214. %label{:for => "model_weight_pounds"} Weight:
  215. %td
  216. = select 'model', 'weight_pounds', (80..200).to_a, { :include_blank => true }
  217. lbs
  218. %tr
  219. %td
  220. %label{:for => "model_body_type_id"} Body Type:
  221. %td= select 'model', 'body_type_id', BodyType.find(:all).collect {|bt| [bt.name, bt.id] }, { :include_blank => true }
  222.  
  223. %tr
  224. %td
  225. %label{:for => "model_skin_color_id"} Skin Complexion:
  226. %td= select 'model', 'skin_color_id', SkinColor.find(:all).collect {|s| [s.name, s.id] }, { :include_blank => true }
  227.  
  228. %tr
  229. %td
  230. %label{:for => "model_minimum_pay"} Minimum pay:
  231. %td
  232. = select 'model', 'minimum_pay', {'Any' => 0, '1,000' => 1000, '1,500' => 1500, '2,000' => 2000, '2,500' => 2500, '3,000' => 3000, '3,500' => 3500}.sort
  233. pesos
  234.  
  235. %br/
  236. %hr{ :width => '50%'}/
  237. %h3 Job Preferences:
  238. %table
  239. %tr
  240. %td{ :colspan => 2 }
  241.  
  242. %tr
  243. %td{ :colspan => 2 }
  244. Modeling Job Types:
  245. = preference_table( JobType, @model )
  246.  
  247. %tr
  248. %td{ :colspan => 2 }
  249. Area(s) where you are willing to work:
  250. = preference_table( Region, @model, 3 )
  251.  
  252. %tr
  253. %td{ :colspan => 2 }
  254. Language(s) that you are fluent in:
  255. = preference_table( Language, @model, 4 )
  256.  
  257.  
  258. %br/
  259. %br/
Add Comment
Please, Sign In to add comment