如何解决红宝石在轨道上未定义的方法错误^
| 我是第一次尝试使用Rails,但我不断收到此未定义的方法错误。到目前为止,我所做的只是使用rails创建一个新项目,使用脚手架创建我的数据库表test。应用rate命令后,一切正常,但是当我在Web浏览器中运行它时,出现此错误:ActionView::TemplateError (undefined method `^\' for \"7\":String) on line #3 of app/views/tests/new.html.erb:
1: <h1>New test</h1>
2:
3: <% form_for(@test) do |f| %>
4: <%= f.error_messages %>
5:
6: <p>
对我如何处理此错误有任何想法的人吗?
编辑:-
控制器中的“新”操作:-
def new
@test = Test.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @test }
end
end
解决方法
错误消息抱怨,因为Rails尝试在字符串“ 7”上使用the2ѭ运算符,该运算符不支持该操作(数字7将支持该操作)。回溯中指示的行是
form_for(@test)
,因此form_for
对@test
做些操作,从而导致^
在7
上被调用。造成这种情况的最可能的原因是,Rails尝试在某处对@test
的ID进行异或运算,而@test.id
意外返回字符串\"7\"
而不是数字7
。
换句话说,您可能将tests
表设置为具有带字符串类型而不是整数的id列,Rails不喜欢这种类型。
, 我的猜测是您为something5ѭ分配了不是模型对象的东西。请从您的控制器发布new
方法的代码,以便我们进一步深入研究。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。