2017-05-29 54 views
0

耙版本:12.0.0 红宝石:红宝石2.3.0 的Rails:Rails的4.2.0rake中止! NoMethodError:未定义的方法`misc_info”

以下时,耙分贝运行红宝石应用:复位给未定义的方法错误。

下面的rake命令没有给出任何问题。

rake db:drop db:create db:migrate 

rake db:schema 

rake db:seed 

但是当我运行耙分贝:复位,它提供了以下错误

rake aborted! 
NoMethodError: undefined method `misc_info' for #<Venue:0x007ff593140ee8> Did you mean? misc_info_raw 

seeds.rb is as below.

User .create!([{ first_name: "abc", last_name: "abcd", :email => "[email protected]", :password => "password", role: 2}]) ` 

TimeZone.create([ 
    { :name => "US/Pacific", :created_at => "2013-06-06 22:14:08", :updated_at => "2013-07-09 18:55:41" }, 
    { :name => "US/Arizona", :created_at => "2014-09-17 03:05:58", :updated_at => "2015-02-02 18:24:38" }, 
    { :name => "US/Mountain", :created_at => "2013-06-09 22:54:23", :updated_at => "2015-02-02 18:24:49" }, 
    { :name => "US/Eastern", :created_at => "2013-06-07 00:22:41", :updated_at => "2015-02-02 18:24:57" } 
    ], :without_protection => true) 

    time_zone = TimeZone.find_by_name("US/Pacific") 

    Subdivision.create!([ 
    { :locale1 => "PQDS", 
     :locale2 => "abcd", 
     :locale3 => "abcd", 
     :locale_code => "CA", 
     :postal_code => "90210", 
     :country => "United States", 
     :country_code => "US", 
     :latitude => 34.1030032, 
     :longitude => -118.4104684, 
     :time_zone_id => time_zone.id, 
     :created_at => "2013-12-17 20:23:52", 
     :updated_at => "2014-10-02 21:53:06", 
     :is_visible => true, 
     :uber_enabled => true } 
     ], :without_protection => true)` 

     subdivision = Subdivision.find_by_locale3("abcd") 

     venue = Venue.new({ 
     name: "XXXX", 
     club_type: 1, 
     address: "XXX XXXX, XXX, CA", 
     average_per_bottle: nil, 
     thumbnail_photo_id: nil, 
     phone_number: "5554443333", 
     bt_cut: 25, 
     music_description: "dsd", 
     crowd_description: "fffdf", 
     email: "[email protected]", 
     braintree_merchant_id: nil, 
     braintree_verified: false, 
     score: 0, 
     active_venue:true, 
     about: "this place is great", 
     percent_discount: 0, 
     subdivision_id: subdivision.id 
     }) 

     venue.save! 

     # Create a venue with an initial table section. 
     # section_image_path = "#{Rails.root}/app/assets/images/dasda.jpeg" 
     section = Section.new(
     location: "Pool Section", 
     variety: 1, 
     capacity: 12 
     ) 
     section.venue = venue 

     schedule = section.build_schedule 
     schedule.time = Time.now.utc 
     schedule.date = Time.now.utc 
     schedule.rule = "weekly" 
     schedule.day = ['monday', 'wednesday', 'friday', 'saturday'] 
     section.minimums = {sunday: 5000, monday: 3000, tuesday: 1400, wednesday: 2000, thursday: 3400, friday: 3000, saturday: 4000} 
     schedule.save! 
     section.save! 

任何帮助,将不胜感激

完整的错误跟踪:

rake aborted! 
NoMethodError: undefined method `misc_info' for #<Venue:0x007f82eb2c88d0> 
Did you mean? misc_info_raw 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/attribute_methods.rb:433:in `method_missing' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/validator.rb:149:in `block in validate' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/validator.rb:148:in `each' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/validator.rb:148:in `validate' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:450:in `public_send' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:450:in `block in make_lambda' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:189:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:190:in `block in simple' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:92:in `_run_callbacks' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:734:in `_run_validate_callbacks' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/validations.rb:395:in `run_validations!' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/validations/callbacks.rb:113:in `block in run_validations!' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:117:in `call' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:219:in `block in halting_and_conditional' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:92:in `_run_callbacks' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:734:in `_run_validation_callbacks' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/validations/callbacks.rb:113:in `run_validations!' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activemodel-4.2.0/lib/active_model/validations.rb:334:in `valid?' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/validations.rb:58:in `valid?' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/validations.rb:83:in `perform_validations' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/validations.rb:43:in `save!' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/attribute_methods/dirty.rb:29:in `save!' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/transactions.rb:291:in `block in save!' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/transactions.rb:347:in `block in with_transaction_returning_status' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/transaction.rb:188:in `within_new_transaction' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/transactions.rb:220:in `transaction' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/transactions.rb:344:in `with_transaction_returning_status' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/transactions.rb:291:in `save!' 
/Users/xxxxxx/Documents/workspace/pk-workspace/pcp-Admin/db/seeds.rb:56:in `<top (required)>' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `block in load' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:268:in `load' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/railties-4.2.0/lib/rails/engine.rb:547:in `load_seed' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/tasks/database_tasks.rb:250:in `load_seed' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/railties/databases.rake:180:in `block (2 levels) in <top (required)>' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain' 
/Users/xxxxxx/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:216:in `block in invoke_prerequisites' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:214:in `each' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:214:in `invoke_prerequisites' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:193:in `block in invoke_with_call_chain' 
/Users/xxxxxx/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/activerecord-4.2.0/lib/active_record/railties/databases.rake:139:in `block (2 levels) in <top (required)>' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain' 
/Users/xxxxxx/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `each' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/lib/rake/application.rb:77:in `run' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/bin/rake:23:in `load' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/bin/rake:23:in `<main>' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 
/Users/xxxxxx/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>' 
Tasks: TOP => db:setup => db:seed 

添加模型/ venue.rb

class Venue < ActiveRecord::Base 
    nilify_blanks 
    attr_accessor :misc_info_raw 

    def misc_info_raw 
    self.misc_info.join("\n, ") unless self.misc_info.nil? 
    end 

    def misc_info_raw=(values) 
    self.misc_info = [] 
    self.misc_info = values 
    end 
    # Geocoding 
    geocoded_by :full_address do |venue, results| 
    if geo = results.first 
     venue.latitude = geo.latitude 
     venue.longitude = geo.longitude 
     venue.district = geo.neighborhood if geo.neighborhood 
    end 
    end 

    after_validation :geocode, :if => :address_changed? 

    CLUB_TYPES = [nil, ‘xxx’, ‘xxxx’, ‘xxxx’, 
    ‘Xx’, ‘xx xxxx’, ‘xxx xxx’] 

    belongs_to :subdivision 
    has_many :events 
    has_many :stake_holders 
    has_one :thumbnail_image 
    has_many :inventories, :dependent => :destroy 
    has_many :promotions 
    has_many :claimed_promotions 

    has_many :reviews 
    has_many :images, :dependent => :destroy 
    has_many :sections, :dependent => :destroy 

    accepts_nested_attributes_for :subdivision, 
    :images, :inventories, 
    :thumbnail_image, :sections, :allow_destroy => true 

    validates :name, 
    :presence => true, 
    :length => { :maximum => 30 } 

    validates :misc_info, :about, 
    :length => { :maximum => 255 } 

    validates :club_type, 
    :about, 
    :percent_discount, 
    :bt_cut, 
    :district, 
    :email, :presence => true 

    #cell_image is used instead of thumbnail_image for versions < 2.0 
    has_attached_file :cell_image, 
    :url => "/thumbnails/:id/:style/:basename.:extension", 
    :path => "/thumbnails/:id/:style/:basename.:extension" 

    validates_attachment_content_type :cell_image, :content_type => /\Aimage\/.*\Z/ 

    # Required for geocoding 
    def full_address 
     address 
    end 

    def first_image_url 
     self.images.empty? ? nil : self.images.first.image_url 
    end 

    def thumb_image_url 
     self.cell_image.url if self.cell_image 
    end 

    def small_thumb_image_url 
     self.thumbnail_image.image.url if self.thumbnail_image 
    end 

    DESC_HTML_BEG = "<div style=\"font-family:helvetica;color:white;\" >\r\n<p>\r\nDetails\r\n</p>\r\n<hr>\r\n<div>\r\n<ul>\r\n" 
    DESC_HTML_END = "\r\n</div>\r\n</div>" 

    #don't return quote if it is not a day of request 
    def description(days_in_future) 
     base = "#{description_1}#{description4}#{description2}#{description3}" 
     base = "#{self.special_event_html}#{base}" unless self.tonights_event.nil? if days_in_future == 0 
     base = "#{self.bt_offer_html}#{base}" unless self.bt_offer.nil? 

     "#{DESC_HTML_BEG}#{base}#{DESC_HTML_END}" 
    end 

    def special_event_html 
     return_li_html("SPECIAL EVENT: #{self.tonights_event}") 
    end 

    def bt_offer_html 
     return_li_html("BT EXCLUSIVE OFFER: Free #{self.bt_offer.inventory.master_inventory.brand} #{ self.bt_offer.inventory.master_inventory.name } with every order!") 
    end 

    #returns string wrapped in li html style 
    def return_li_html(s) 
     "<li style=\"padding-bottom:1ex\">#{s}</li>" 
    end 

    def merchant_cut 
     ((100 - self.bt_cut) * 0.01).to_f 
    end 

    def discount 
     (self.percent_discount * 0.01).to_f 
    end 

    #returns club type string based off database int column club_type 
    def club_type_string 
     CLUB_TYPES[self.club_type] 
    end 

    #returns club types 
    def self.club_types 
     CLUB_TYPES 
    end 

    def get_bt_merchant_id 
     "#{ name.gsub(/[^0-9a-z\\s]/i, '').downcase }_#{ self.subdivision.locale_code }_#{ self.subdivision.postal_code }" 
    end 
    end 
+1

请提供完整的错误跟踪。我想这是关于'Venue'模型中的一些依赖,比如回调。 – DjezzzL

+0

做'rake db:reset --trace'来获得完整的跟踪。 –

+0

@DjezzzL是正确的,验证回调中的问题。 –

回答

1

rake aborted! NoMethodError: undefined method `misc_info' for Venue:0x007ff593140ee8 Did you mean? misc_info_raw

就像我说的,你在你的venues表中缺少misc_info列。加回来应该可以解决问题。

相关问题