问题描述
|
我是第一次尝试使用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
方法的代码,以便我们进一步深入研究。