Php Rails应用程序使用mysql-语法错误仅适用于mysql而非sqlite?

Php Rails应用程序使用mysql-语法错误仅适用于mysql而非sqlite?,php,mysql,ruby-on-rails,ruby,sqlite,Php,Mysql,Ruby On Rails,Ruby,Sqlite,我对RubyonRails非常熟悉,并且一直致力于开发一个使用mysql的应用程序,当从mysql数据库加载资产时,除了一个特定的页面外,其他一切都可以正常工作 我不确定到底发生了什么,也没有运气把它修好 我在ubuntu上运行,有乘客4.0.20、mysql 2.9.1和rails 3.0.7 在passenger守护程序下或通过apache查看页面时,应用程序返回以下信息: 错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解第1行“==”资产附近使用的正确语法:SEL

我对RubyonRails非常熟悉,并且一直致力于开发一个使用mysql的应用程序,当从mysql数据库加载资产时,除了一个特定的页面外,其他一切都可以正常工作

我不确定到底发生了什么,也没有运气把它修好

我在ubuntu上运行,有乘客4.0.20、mysql 2.9.1和rails 3.0.7

在passenger守护程序下或通过apache查看页面时,应用程序返回以下信息:

错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解第1行“==”资产附近使用的正确语法:SELECTtypes.*FROMtypesWHERE type_for==”资产'

第52行周围的提取源:

49:   </div>
50:   <div class="field">
51:     <%= f.label :asset_type_id %><br />
52:     <%= f.select :asset_type_id, Type.where("type_for == 'assets'").collect{|u| [ u.name, u.id ]} , { :include_blank => true }, {}  %>    
53:   </div>
54:   <div class="field">
55:     <%= f.label :asset_status_id %><br />  

app/views/assets/_form.html.erb:52:in `block in_app_views_assets__form_html_erb___1678548858904611904_30514700_2370109183913626002'
app/views/assets/_form.html.erb:1:in         `_app_views_assets__form_html_erb___1678548858904611904_30514700_2370109183913626002'
app/views/assets/new.html.erb:3:in `_app_views_assets_new_html_erb___211939086717483877_30551560__3850816556217762359'

我已经穷途末路了,不知道该怎么办。现在任何帮助都将是惊人的。

这行有语法错误

<%= f.select :asset_type_id, Type.where("type_for == 'assets'").collect{|u| [ u.name, u.id ]} , { :include_blank => true }, {} %>
应该是这样的

<%= f.select :asset_type_id, Type.where("type_for" => "assets").collect{|u| [ u.name, u.id ]} , { :include_blank => true }, {} %>

你可以这样写

<%= f.select :asset_type_id, Type.where("type_for = ?", "assets").collect{|u| [ u.name, u.id ]} , { :include_blank => true }, {} %>

正如@MikeCampbell所指出的,它也可以写成

<%= f.select :asset_type_id, Type.where("type_for" :"assets").collect{|u| [ u.name, u.id ]} , { :include_blank => true }, {} %>
您必须从第52行删除==并替换为=


清楚地编辑您的帖子…键入\u?对于=?,应为类型_。@KirtiThorat谢谢!Updated.type_for=资产也应该是type_for=>资产,或者最好是type_for:assets@MikeCampbell谢谢很难相信我错过了。谢谢,是的,是==vs=。这就成功了。他正看着我的脸。我很高兴stackoverflow是一件事。
<%= f.select :asset_type_id, Type.where("type_for" :"assets").collect{|u| [ u.name, u.id ]} , { :include_blank => true }, {} %>
52:     <%= f.select :asset_type_id, Type.where("type_for = 'assets'").collect{|u| [ u.name, u.id ]} , { :include_blank => true }, {}  %>