From e77f7fdf31c9d0547fd8dab4ea3df49299b3bbde Mon Sep 17 00:00:00 2001 From: martyhines Date: Tue, 20 Aug 2013 21:22:02 -0400 Subject: [PATCH] Added creator field to crops --- app/models/crop.rb | 3 ++- db/migrate/20130821011352_add_creator_to_crops.rb | 5 +++++ db/schema.rb | 4 +++- spec/factories/crop.rb | 1 + spec/factories/member.rb | 2 +- spec/models/crop_spec.rb | 5 +++++ 6 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20130821011352_add_creator_to_crops.rb diff --git a/app/models/crop.rb b/app/models/crop.rb index c8506be8a..46eadf535 100644 --- a/app/models/crop.rb +++ b/app/models/crop.rb @@ -1,12 +1,13 @@ class Crop < ActiveRecord::Base extend FriendlyId friendly_id :system_name, use: :slugged - attr_accessible :en_wikipedia_url, :system_name, :parent_id + attr_accessible :en_wikipedia_url, :system_name, :parent_id, :creator_id has_many :scientific_names has_many :plantings has_many :photos, :through => :plantings has_many :seeds + belongs_to :creator, :class_name => 'Member' belongs_to :parent, :class_name => 'Crop' has_many :varieties, :class_name => 'Crop', :foreign_key => 'parent_id' diff --git a/db/migrate/20130821011352_add_creator_to_crops.rb b/db/migrate/20130821011352_add_creator_to_crops.rb new file mode 100644 index 000000000..4da89b8d1 --- /dev/null +++ b/db/migrate/20130821011352_add_creator_to_crops.rb @@ -0,0 +1,5 @@ +class AddCreatorToCrops < ActiveRecord::Migration + def change + add_column :crops, :creator_id, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index 770254e64..93fac0e29 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130819004549) do +ActiveRecord::Schema.define(:version => 20130821011352) do create_table "account_types", :force => true do |t| t.string "name", :null => false @@ -58,6 +58,7 @@ ActiveRecord::Schema.define(:version => 20130819004549) do t.string "slug" t.integer "parent_id" t.integer "plantings_count" + t.integer "creator_id" end add_index "crops", ["slug"], :name => "index_crops_on_slug", :unique => true @@ -114,6 +115,7 @@ ActiveRecord::Schema.define(:version => 20130819004549) do t.float "latitude" t.float "longitude" t.boolean "send_notification_email", :default => true + t.text "bio" end add_index "members", ["confirmation_token"], :name => "index_users_on_confirmation_token", :unique => true diff --git a/spec/factories/crop.rb b/spec/factories/crop.rb index 76fd31433..108aad7f8 100644 --- a/spec/factories/crop.rb +++ b/spec/factories/crop.rb @@ -3,6 +3,7 @@ FactoryGirl.define do factory :crop do system_name "Magic bean" en_wikipedia_url "http://en.wikipedia.org/wiki/Magic_bean" + creator factory :tomato do system_name "Tomato" diff --git a/spec/factories/member.rb b/spec/factories/member.rb index 5e5b7f455..c1be268b7 100644 --- a/spec/factories/member.rb +++ b/spec/factories/member.rb @@ -2,7 +2,7 @@ FactoryGirl.define do sequence(:email) { |n| "member#{n}@example.com" } sequence(:login_name) { |n| "member#{n}" } - factory :member, aliases: [:author, :owner, :sender, :recipient] do + factory :member, aliases: [:author, :owner, :sender, :recipient, :creator] do login_name { generate(:login_name) } password 'password1' email { generate(:email) } diff --git a/spec/models/crop_spec.rb b/spec/models/crop_spec.rb index b1363004a..55386a7b4 100644 --- a/spec/models/crop_spec.rb +++ b/spec/models/crop_spec.rb @@ -23,6 +23,11 @@ describe Crop do @crop.to_s.should == 'Tomato' "#{@crop}".should == 'Tomato' end + + it 'has a creator' do + @crop.save + @crop.creator.should be_an_instance_of Member + end end context 'invalid data' do