Rails 3.1, validate_presence_of => ОШИБКА NoMethodError: неопределенный метод `bytesize’ для:dager_fra: символа

#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1

#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1

Вопрос:

У меня есть ajax-форма:

_form.html.erb:

 <%= form_for @innmelding, :remote => true, :html => { :id => 'kurs-form' } do |f| %>
  

innmeldings_controller.rb:

 def create
  @innmelding = Innmelding.new( params[:innmelding] )
  flash[:notice] = "Lagret" if @innmelding.save
  respond_with( @innmelding, :layout => !request.xhr? )
end
  

innmelding.rb:

 class Innmelding < ActiveRecord::Base      
  belongs_to :laerer, :foreign_key => "ansvarlig"
  belongs_to :laerer, :foreign_key => "overordnet"
  has_many :kurss
  validates_presence_of :dager_fra
end
  

Gemfile:

 source 'http://rubygems.org'
gem 'rails', '3.1.0.rc4'

gem 'sqlite3'
gem 'mysql2'

gem 'sass'
gem 'coffee-script'
gem 'coffeebeans'    
gem 'uglifier'

gem 'jquery-rails'

gem 'devise'
gem 'cancan'
gem 'haml'
gem 'event-calendar', :require => 'event_calendar'
gem 'therubyracer'
  

Когда поле «dager_fra» пусто, я получаю следующую ошибку:

«ОШИБКА NoMethodError: неопределенный метод `bytesize’ для:dager_fra:Symbol»

Я использую rails 3.1-rc4 (та же ошибка в rc1) и ruby 1.9.2. Я подозреваю, что это связано с ruby 1.9. Не удалось запустить его на ruby 1.8, поэтому я не проверял это (кажется, я читал где-то, что метод bytesize удален из rails какого-то выпуска, потому что теперь он часть Ruby 1.9).

Комментарии:

1. Похоже, что чего-то не хватает при преобразовании из Symbol в String . bytesize это строковый метод, который возвращает длину строки. Какие плагины / драгоценные камни вы используете?

2. Добавлен Gemfile к моему вопросу.

Ответ №1:

Это проблема rails, смотрите здесьhttps://github.com/rails/rails/issues/1730

Попробуйте в вашем gemfile

gem ‘rails’, ‘3.1.0.rc4’, :git => «https://github.com/rails/rails.git «, :branch => «3-1-стабильный»

Это помогло мне.