【问题标题】:Rails 3.1, validates_presence_of => ERROR NoMethodError: undefined method `bytesize' for :dager_fra:SymbolRails 3.1,validates_presence_of => ERROR NoMethodError: undefined method `bytesize' for :dager_fra:Symbol
【发布时间】:2011-06-14 13:43:12
【问题描述】:

我有一个 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

宝石文件:

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”字段为空时,我收到以下错误:

"ERROR NoMethodError: undefined method `bytesize' for :dager_fra:Symbol"

我使用的是 rails 3.1-rc4(rc1 上的同样错误)和 ruby​​ 1.9.2。我怀疑它与ruby 1.9有关。还没有设法让它在 ruby​​ 1.8 上运行,所以我还没有验证这一点(我想我读过一些地方,bytesize 方法被移出了某些版本的轨道,因为它现在是 Ruby 1.9 的一部分)。

【问题讨论】:

  • 似乎缺少从 SymbolString 的转换。 bytesize 是一个返回字符串长度的字符串方法。你在用什么插件/宝石?
  • 将 Gemfile 添加到我的问题中。

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1


【解决方案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-stable"

这对我有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2017-07-04
    • 2012-02-01
    • 2015-03-19
    相关资源
    最近更新 更多