Php Rails应用程序使用mysql-语法错误仅适用于mysql而非sqlite?
我对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行周围的提取源: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
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 }, {} %>