这是我在做一个简单的过程中得到的完整错误:
$ rails generate
Users/localuser/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/psych.rb:205:在`parse':():扫描简单时找不到预期的':'第18行第3列的键(Psych :: SyntaxError)
有什么想法吗?
我的系统:
这是错误中提到的psych.rb文件的摘录
#See Psych::Nodes for more information about YAML AST.
def self.parse_stream yaml, filename = nil, &block
if block_given?
parser = Psych::Parser.new(Handlers::DocumentStream.new(&block))
parser.parse yaml, filename
else
parser = self.parser
parser.parse yaml, filename
parser.handler.root
end
end
Run Code Online (Sandbox Code Playgroud) 我有一种情况需要使用updated_at所有模型的字段来创建同步功能.但是在User模型的情况下,updated_at每次用户登录时都会修改该字段.更糟糕的情况是,当设备使用用户的凭据登录同步数据updated_at字段时,在同步甚至开始之前就会被修改.
所以,我的问题是,updated_at当用户登录时,我们是否可以停止设计更新字段?
这是两个具有1对1关联的模型的代码
class User < ActiveRecord::Base
has_one :e_user
validates_presence_of :first_name
validates_presence_of :last_name
validates :password, presence: true, :length => { :minimum => 6}
validates_uniqueness_of :email, :message => ": This email is already registered!"
validates_presence_of :email
end
Run Code Online (Sandbox Code Playgroud)
以下是第二个型号:
class EUser < ActiveRecord::Base
belongs_to : user
end
Run Code Online (Sandbox Code Playgroud)
当我去rails控制台并从db获取用户时,通过这样做
a = User.where(:id => 1)
Run Code Online (Sandbox Code Playgroud)
我有一个用户.现在我想让e_user与a相关联(如果它应该返回它或返回null),但是当我在控制台中键入a.EUser时出现错误消息,错误是
NoMethodError: undefined method `EUser' for #<ActiveRecord::Relation:0x00000002ab5908>from /home/faraz/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.1.1/lib/active_record/relation.rb:459:in `method_missing'
from (irb):3
from /home/faraz/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.1.1/lib/rails/commands/console.rb:45:in `start'
from /home/faraz/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.1.1/lib/rails/commands/console.rb:8:in `start'
from /home/faraz/.rvm/gems/ruby-1.9.3-p448/gems/railties-3.1.1/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
问候
ruby-on-rails model-associations active-relation rails-activerecord
devise ×1