mirror of
				https://github.com/fspc/BikeShed-1.git
				synced 2025-10-31 08:55:36 -04:00 
			
		
		
		
	Experimenting with Netzke/ ExtJS
This commit is contained in:
		
							parent
							
								
									ead5f7b433
								
							
						
					
					
						commit
						d7f5eb26bf
					
				
							
								
								
									
										4
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Gemfile
									
									
									
									
									
								
							| @ -2,6 +2,10 @@ source 'https://rubygems.org' | |||||||
| 
 | 
 | ||||||
| gem 'rails', '3.2.1' | gem 'rails', '3.2.1' | ||||||
| 
 | 
 | ||||||
|  | gem 'netzke-core', '~>0.8.0' | ||||||
|  | gem 'netzke-basepack', '~>0.8.0' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| gem 'sqlite3', '~> 1.3.5' | gem 'sqlite3', '~> 1.3.5' | ||||||
| gem 'devise', '~> 2.0.4' | gem 'devise', '~> 2.0.4' | ||||||
| gem 'haml-rails', '~> 0.3.4' | gem 'haml-rails', '~> 0.3.4' | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								app/components/app_tab_panel.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								app/components/app_tab_panel.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | class AppTabPanel < Netzke::Basepack::TabPanel | ||||||
|  |  component :bikes | ||||||
|  |  component :brands_and_models_border | ||||||
|  |  component :users_and_profiles_border | ||||||
|  | 
 | ||||||
|  |   def configure(c) | ||||||
|  |     c.active_tab = 0 | ||||||
|  |     c.prevent_header = true | ||||||
|  |     c.items = [ :bikes, :brands_and_models_border, :users_and_profiles_border] | ||||||
|  |     super | ||||||
|  |   end | ||||||
|  | end | ||||||
|  | 
 | ||||||
							
								
								
									
										14
									
								
								app/components/app_view.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								app/components/app_view.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | class AppView < Netzke::Basepack::Viewport | ||||||
|  |   js_configure do |c| | ||||||
|  |     c.layout = :fit | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.items = [ | ||||||
|  |       {netzke_component: :app_tab_panel, region: :center} | ||||||
|  |     ] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   component :app_tab_panel | ||||||
|  | end | ||||||
							
								
								
									
										26
									
								
								app/components/bike_brands.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								app/components/bike_brands.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | class BikeBrands < Netzke::Basepack::Grid | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.model = "BikeBrand" | ||||||
|  | 
 | ||||||
|  |      | ||||||
|  | =begin | ||||||
|  |     c.columns = [ | ||||||
|  |       :done, | ||||||
|  |       :name, | ||||||
|  |       {name: :notes, flex: 1}, | ||||||
|  |       :priority, | ||||||
|  |       {name: :due, header: "Due on"} | ||||||
|  |     ] | ||||||
|  | =end | ||||||
|  |     #c.enable_context_menu = false | ||||||
|  |     #c.context_menu = false | ||||||
|  |     #c.enable_edit_in_form = false | ||||||
|  |     #c.scope = {done: [nil, false]} | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   #override with nil to remove actions | ||||||
|  |   def default_bbar | ||||||
|  |     [ :apply, :add_in_form, :search ] | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										23
									
								
								app/components/bike_models.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								app/components/bike_models.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | class BikeModels < Netzke::Basepack::Grid | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  | 
 | ||||||
|  |     c.model = "BikeModel" | ||||||
|  |     c.data_store = {auto_load: false} | ||||||
|  |     c.scope = lambda { |rel| puts session.inspect; rel.where(:bike_brand_id => session[:selected_bike_brand_id]);} | ||||||
|  |     #c.strong_default_attrs = lambda { |rel| puts rel.inspect;} | ||||||
|  |      | ||||||
|  |     c.columns = [ | ||||||
|  |       :model | ||||||
|  |     ] | ||||||
|  |     #c.enable_context_menu = false | ||||||
|  |     #c.context_menu = false | ||||||
|  |     #c.enable_edit_in_form = false | ||||||
|  |     #c.scope = {done: [nil, false]} | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   #override with nil to remove actions | ||||||
|  |   def default_bbar | ||||||
|  |     [ :apply, :add_in_form, :search ] | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										59
									
								
								app/components/bikes.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								app/components/bikes.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | |||||||
|  | class Bikes < Netzke::Basepack::Grid | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.model = "Bike" | ||||||
|  | 
 | ||||||
|  |     c.columns = [ | ||||||
|  |       :serial_number, | ||||||
|  |       { :name => :bike_brand__brand }, | ||||||
|  |       { :name => :bike_model__model, | ||||||
|  |         :scope => lambda { |rel| | ||||||
|  |                     if session[:selected_bike_brand_id] | ||||||
|  |                       rel.where(:bike_brand_id => session[:selected_bike_brand_id]) | ||||||
|  |                     else | ||||||
|  |                       rel.all | ||||||
|  |                     end | ||||||
|  |                   } | ||||||
|  |       }, | ||||||
|  |       :color, | ||||||
|  |       { :name => :bike_style__style }, | ||||||
|  |       :seat_tube_height, | ||||||
|  |       :top_tube_length, | ||||||
|  |       :wheel_size, | ||||||
|  |       :value, | ||||||
|  |       { :name => :bike_condition__condition}, | ||||||
|  |       { :name => :bike_status__status} | ||||||
|  |     ] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   #override with nil to remove actions | ||||||
|  |   def default_bbar | ||||||
|  |     [ :apply, :add_in_form ] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   js_configure do |c| | ||||||
|  |     c.init_component = <<-JS | ||||||
|  |           function(){ | ||||||
|  |             // calling superclass's initComponent | ||||||
|  |             this.callParent(); | ||||||
|  | 
 | ||||||
|  |             // setting the 'rowclick' event | ||||||
|  |             var view = this.getView(); | ||||||
|  |             view.on('itemclick', function(view, record){ | ||||||
|  |             console.log(view); | ||||||
|  |             console.log(record); | ||||||
|  |               // The beauty of using Ext.Direct: calling 3 endpoints in a row, which results in a single call to the server! | ||||||
|  |               this.selectBikeBrand({bike_brand_id: record.get('bike_brand__brand')}); | ||||||
|  |             }, this); | ||||||
|  |           } | ||||||
|  |         JS | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   endpoint :select_bike_brand do |params, this| | ||||||
|  |     # store selected boss id in the session for this component's instance | ||||||
|  |     session[:selected_bike_brand_id] = params[:bike_brand_id] | ||||||
|  |     puts "BikeID-----------------------------" | ||||||
|  |     #puts params[:bike_brand_id] | ||||||
|  |     puts session.inspect | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										24
									
								
								app/components/brands_and_models.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								app/components/brands_and_models.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | |||||||
|  | class Bikes < Netzke::Basepack::Grid | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.model = "Bike" | ||||||
|  | =begin | ||||||
|  |     c.columns = [ | ||||||
|  |       :done, | ||||||
|  |       :name, | ||||||
|  |       {name: :notes, flex: 1}, | ||||||
|  |       :priority, | ||||||
|  |       {name: :due, header: "Due on"} | ||||||
|  |     ] | ||||||
|  | =end | ||||||
|  |     #c.enable_context_menu = false | ||||||
|  |     #c.context_menu = false | ||||||
|  |     #c.enable_edit_in_form = false | ||||||
|  |     #c.scope = {done: [nil, false]} | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   #override with nil to remove actions | ||||||
|  |   def default_bbar | ||||||
|  |     [ :apply, :add_in_form ] | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										57
									
								
								app/components/brands_and_models_border.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								app/components/brands_and_models_border.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | class BrandsAndModelsBorder < Netzke::Base | ||||||
|  |   # Remember regions collapse state and size | ||||||
|  |   include Netzke::Basepack::ItemPersistence | ||||||
|  |   component :bike_brands | ||||||
|  |   component :bike_models | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.title = "Brands/Models" | ||||||
|  |     c.items = [ | ||||||
|  | #      { netzke_component: :bike_brands, region: :center, split: true } | ||||||
|  |      { netzke_component: :bike_brands, region: :center, split: true }, | ||||||
|  |      { netzke_component: :bike_models, region: :east, width: 500, split: true} | ||||||
|  |     ] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   js_configure do |c| | ||||||
|  |     c.layout = :border | ||||||
|  |     c.border = false | ||||||
|  | 
 | ||||||
|  | # Overriding initComponent | ||||||
|  |     c.init_component = <<-JS | ||||||
|  |       function(){ | ||||||
|  |         // calling superclass's initComponent | ||||||
|  |         this.callParent(); | ||||||
|  | 
 | ||||||
|  |         // setting the 'rowclick' event | ||||||
|  |         var view = this.getComponent('bike_brands').getView(); | ||||||
|  |         view.on('itemclick', function(view, record){ | ||||||
|  |           // The beauty of using Ext.Direct: calling 3 endpoints in a row, which results in a single call to the server! | ||||||
|  |           this.selectBikeBrand({bike_brand_id: record.get('id')}); | ||||||
|  |           this.getComponent('bike_models').getStore().load(); | ||||||
|  |         }, this); | ||||||
|  |       } | ||||||
|  |     JS | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   endpoint :select_bike_brand do |params, this| | ||||||
|  |     # store selected boss id in the session for this component's instance | ||||||
|  |     session[:selected_bike_brand_id] = params[:bike_brand_id] | ||||||
|  |     puts "BikeBrandID-----------------------------" | ||||||
|  |     #puts params[:bike_brand_id] | ||||||
|  |     puts session.inspect | ||||||
|  | 
 | ||||||
|  | =begin | ||||||
|  |     brand = BikeBrand.find_by_id(params[:bike_brand_id]) | ||||||
|  |     bike_models_grid = component_instance(:bike_models) | ||||||
|  |     bike_models_data = bike_models_grid.get_data | ||||||
|  | 
 | ||||||
|  |     { | ||||||
|  |       :bike_models=> {:load_store_data => bike_models_data, :set_title => "Models for #{brand.brand}"}, | ||||||
|  |     } | ||||||
|  | =end  | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |    | ||||||
|  | end | ||||||
							
								
								
									
										22
									
								
								app/components/user_profiles.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/components/user_profiles.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | class UserProfiles < Netzke::Basepack::Grid | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.model = "UserProfile" | ||||||
|  |     c.data_store = {auto_load: false} | ||||||
|  |     c.scope = lambda { |rel| puts session.inspect; rel.where(:user_id => session[:selected_user_id]);} | ||||||
|  |     c.columns = [ | ||||||
|  |       { :name => :bike__serial_number}, | ||||||
|  |       :addrStreet1, | ||||||
|  |       :addrStreet2, | ||||||
|  |       :addrCity, | ||||||
|  |       :addrState, | ||||||
|  |       :addrZip, | ||||||
|  |       :phone | ||||||
|  |     ] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   #override with nil to remove actions | ||||||
|  |   def default_bbar | ||||||
|  |     [ :apply, :add_in_form ] | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										18
									
								
								app/components/users.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								app/components/users.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | class Users < Netzke::Basepack::Grid | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.model = "User" | ||||||
|  | 
 | ||||||
|  |     c.columns = [ | ||||||
|  |       :first_name, | ||||||
|  |       :last_name, | ||||||
|  |       :nickname, | ||||||
|  |       :email | ||||||
|  |     ] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   #override with nil to remove actions | ||||||
|  |   def default_bbar | ||||||
|  |     [ :apply, :add_in_form ] | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										44
									
								
								app/components/users_and_profiles_border.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								app/components/users_and_profiles_border.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | |||||||
|  | class UsersAndProfilesBorder < Netzke::Base | ||||||
|  |   # Remember regions collapse state and size | ||||||
|  |   include Netzke::Basepack::ItemPersistence | ||||||
|  |   component :users | ||||||
|  |   component :user_profiles | ||||||
|  |   def configure(c) | ||||||
|  |     super | ||||||
|  |     c.title = "Users/Profiles" | ||||||
|  |     c.items = [ | ||||||
|  |      { netzke_component: :users, region: :center, split: true }, | ||||||
|  |      { netzke_component: :user_profiles, region: :south, height: 300, split: true} | ||||||
|  |     ] | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   js_configure do |c| | ||||||
|  |     c.layout = :border | ||||||
|  |     c.border = false | ||||||
|  | 
 | ||||||
|  | # Overriding initComponent | ||||||
|  |     c.init_component = <<-JS | ||||||
|  |       function(){ | ||||||
|  |         // calling superclass's initComponent | ||||||
|  |         this.callParent(); | ||||||
|  | 
 | ||||||
|  |         // setting the 'rowclick' event | ||||||
|  |         var view = this.getComponent('users').getView(); | ||||||
|  |         view.on('itemclick', function(view, record){ | ||||||
|  |           // The beauty of using Ext.Direct: calling 3 endpoints in a row, which results in a single call to the server! | ||||||
|  |           this.selectUser({user_id: record.get('id')}); | ||||||
|  |           this.getComponent('user_profiles').getStore().load(); | ||||||
|  |         }, this); | ||||||
|  |       } | ||||||
|  |     JS | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   endpoint :select_user do |params, this| | ||||||
|  |     # store selected boss id in the session for this component's instance | ||||||
|  |     session[:selected_user_id] = params[:user_id] | ||||||
|  |     puts "UserID-----------------------------" | ||||||
|  |     #puts params[:bike_brand_id] | ||||||
|  |     puts session.inspect | ||||||
|  |   end | ||||||
|  |    | ||||||
|  | end | ||||||
| @ -1,9 +1,12 @@ | |||||||
| class SiteController < ApplicationController | class SiteController < ApplicationController | ||||||
| 
 | 
 | ||||||
|   def index |   def index | ||||||
|  |   render :inline => "<%= netzke :app_view, :layout => true%>", :layout => "application" | ||||||
|  | =begin | ||||||
|     respond_to do |format| |     respond_to do |format| | ||||||
|       format.html |       format.html | ||||||
|     end |     end | ||||||
|  | =end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
| end | end | ||||||
|  | |||||||
| @ -9,6 +9,8 @@ class User < ActiveRecord::Base | |||||||
|   attr_accessible :email, :password, :password_confirmation, :remember_me, |   attr_accessible :email, :password, :password_confirmation, :remember_me, | ||||||
|     :first_name, :last_name, :nickname |     :first_name, :last_name, :nickname | ||||||
| 
 | 
 | ||||||
|  |   has_many :user_profiles | ||||||
|  | 
 | ||||||
|   validates :first_name, :presence => true |   validates :first_name, :presence => true | ||||||
|   validates :last_name, :presence => true |   validates :last_name, :presence => true | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								app/models/user_profile.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								app/models/user_profile.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | |||||||
|  | class UserProfile < ActiveRecord::Base | ||||||
|  |   # Setup accessible (or protected) attributes for your model | ||||||
|  |   attr_accessible :bike_id, :addrStreet1, :addrStreet2, :addrCity, | ||||||
|  |     :addrState, :addrZip, :phone | ||||||
|  |    | ||||||
|  |   belongs_to :user | ||||||
|  |   belongs_to :bike | ||||||
|  | 
 | ||||||
|  |   validates :addrStreet1, :presence => true | ||||||
|  |   validates :addrCity, :presence => true | ||||||
|  |   validates :addrState, :presence => true | ||||||
|  |   validates :addrZip, :presence => true | ||||||
|  |   validates :phone, :presence => true | ||||||
|  | 
 | ||||||
|  |   self.per_page = 15 | ||||||
|  | 
 | ||||||
|  |   def to_s | ||||||
|  |     [addrStreet1, addrStreet2, addrCity, addrState, addrZip, phone].join(" - ") | ||||||
|  |   end | ||||||
|  | end | ||||||
| @ -1,51 +0,0 @@ | |||||||
| !!! 5 |  | ||||||
| %html{:lang => "en"} |  | ||||||
|   %head |  | ||||||
|     %meta{:charset => "utf-8"}/ |  | ||||||
|     %title= content_for?(:title) ? yield(:title) : "Mash" |  | ||||||
|     = csrf_meta_tags |  | ||||||
|     /[if lt IE 9] |  | ||||||
|       = javascript_include_tag "http://html5shim.googlecode.com/svn/trunk/html5.js" |  | ||||||
|     :css |  | ||||||
|       body { |  | ||||||
|         padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */ |  | ||||||
|       } |  | ||||||
|     = stylesheet_link_tag "application", :media => "all" |  | ||||||
| 
 |  | ||||||
|   %body |  | ||||||
|     .navbar.navbar-fixed-top |  | ||||||
|       .navbar-inner |  | ||||||
|         .container |  | ||||||
|           = link_to 'Velocipede', root_path, :class => 'brand' |  | ||||||
|           .container.nav-collapse |  | ||||||
|             %ul.nav |  | ||||||
|               %li= link_to "Home", root_path |  | ||||||
|               %li= link_to "Bikes", bikes_path |  | ||||||
|               %li= link_to "Users", users_path |  | ||||||
|             %ul.nav.pull-right |  | ||||||
|               - if user_signed_in? |  | ||||||
|                 %li#logged_in_as |  | ||||||
|                   = link_to "Hello #{current_user.first_name} #{current_user.last_name}", edit_user_registration_path |  | ||||||
|                 %li#logout |  | ||||||
|                   = link_to 'Logout', destroy_user_session_path, :method => :delete |  | ||||||
|               - else |  | ||||||
|                 %li#login |  | ||||||
|                   = link_to 'Login', new_user_session_path |  | ||||||
|                 %li#register |  | ||||||
|                   = link_to 'Register', new_user_registration_path |  | ||||||
| 
 |  | ||||||
|     .container |  | ||||||
| 
 |  | ||||||
|       .content |  | ||||||
|         - if flash[:notice] |  | ||||||
|           %p{:class => 'notice'}= flash[:notice] |  | ||||||
|         - if flash[:alert] |  | ||||||
|           %p{:class => 'alert'}= flash[:alert] |  | ||||||
|         .row |  | ||||||
|           .span13 |  | ||||||
|             = yield |  | ||||||
| 
 |  | ||||||
|       %footer |  | ||||||
|         %p © Rails App Template 2012 |  | ||||||
| 
 |  | ||||||
|     = javascript_include_tag "application" |  | ||||||
| @ -1,6 +1,8 @@ | |||||||
| Velocipede::Application.routes.draw do | Velocipede::Application.routes.draw do | ||||||
| 
 | 
 | ||||||
|   devise_for :users |   devise_for :users | ||||||
|  |   netzke | ||||||
|  | =begin | ||||||
|   resources :users |   resources :users | ||||||
|   # The priority is based upon order of creation: |   # The priority is based upon order of creation: | ||||||
|   # first created -> highest priority. |   # first created -> highest priority. | ||||||
| @ -36,5 +38,6 @@ Velocipede::Application.routes.draw do | |||||||
| 
 | 
 | ||||||
|   #match ':loggable_type/:loggable_id/logs' => 'acts_as_loggable/logs#index', :as => 'loggable_logs' |   #match ':loggable_type/:loggable_id/logs' => 'acts_as_loggable/logs#index', :as => 'loggable_logs' | ||||||
| 
 | 
 | ||||||
|  | =end | ||||||
|   root :to => 'site#index' |   root :to => 'site#index' | ||||||
| end | end | ||||||
|  | |||||||
| @ -22,6 +22,7 @@ if Rails.env.development? | |||||||
| 
 | 
 | ||||||
|   #create default dev user |   #create default dev user | ||||||
|   FactoryGirl.create(:user) if User.all.empty? |   FactoryGirl.create(:user) if User.all.empty? | ||||||
|  |   FactoryGirl.create(:user_profile) if UserProfile.all.empty? | ||||||
| 
 | 
 | ||||||
|   #create fake bikes |   #create fake bikes | ||||||
|   if Bike.all.empty? |   if Bike.all.empty? | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								spec/factories/user_profiles.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								spec/factories/user_profiles.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | FactoryGirl.define do | ||||||
|  |   factory :user_profile do | ||||||
|  |     user_id 1 | ||||||
|  |     bike_id 1 | ||||||
|  |     addrStreet1 "Charles Street" | ||||||
|  |     addrStreet2 "Apt #42" | ||||||
|  |     addrCity "Baltimore" | ||||||
|  |     addrState "MD" | ||||||
|  |     addrZip "21231" | ||||||
|  |     phone "(410)8675309" | ||||||
|  |   end | ||||||
|  | end | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user