论坛首页 编程语言技术论坛

rails bug 如果表字段有名字为type的bug

浏览 4008 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-14  

  今天在做开发的时候遇到一个莫名奇妙的问题,后来才发现是表中有字段名字叫type引起的,还是在http://dev.rubyonrails.org/ticket/7998 上发现原来是rails的一个bug,发出来,免得大家遇到相同的问题。

Ticket #7998 (new defect)

Opened 2 months ago

Last modified 2 weeks ago

Scafford should detect & report error when DB field named 'type'

Reported by: Assigned to: Priority: Milestone: Component: Version: Severity: Keywords: Cc:  
dlametcore
normal1.x
ActiveRecordedge
normalfield name error tINTEGER
  

Description

When generating a scaffold, it will accept a table that has a field named type. This causes a crypic error inside base.rb:

compile error c:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1358: syntax error, unexpected tINTEGER Object::1

It would save a lot of people (like me) a lot of time if the scaffold code would fail with a useful error about the field name being 'type'.

Change History

05/22/07 00:51:47 changed by mlopes

I would like to second that. I just came across the exact same problem and for a newbie it can be really a cumbersome issue.

A warning should be used whenever a field name type exists. Better yet, it shouldn't be a problem at all.

05/29/07 20:37:33 changed by josh

  • type changed from enhancement to defect.
   发表时间:2007-06-14  
像type和name之类的有可能是关键字的词还是少用为好。
0 请登录后投票
   发表时间:2007-06-15  
type记得是rails数据库魔法的一个小tricky,你用来干其他事情了。估计就出错了。
0 请登录后投票
   发表时间:2007-06-15  
好像通过 product.attributes[:type] 可以访问
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics