我想从mytest表中找到列'name'。
在mytest.rb中,我定义了“attrib_accessor:name”;
在目录/controller/mytest_controller.rb下的过程索引中,
def index
###[Ignore some code]
@mytesttbl=@user.find_by_id
### I am able to verify the tuples in @mytesttbl
end
在/view/mytest/index.rhtml中,我有像
这样的代码<div id="mytesttable"> <%= render(:partial =>"mytesttbl", :object => @mytesttbl)%> </div>
在/view/mytest/_mytesttbl.html.erb中。我有像
这样的代码<tr>
<td><%=mytestbl.name %></td>
<tr>
当我运行上面的代码时,我在_mytesttbl.html.erb上有错误,
undefined method 'name ' for #<Array:0xb6c971cc>
请帮忙。谢谢,
答案 0 :(得分:2)
我猜这不是你的实际代码,因为它实际上不起作用。您的find
正在返回一个数组。你想要循环遍历数组,或者,如果你知道它只包含一个对象(就像你实际上是通过一个唯一的id找到的那样),你可以只做mytesttbl.first
来从中获取对象
答案 1 :(得分:1)
mytesttbl
是array
。将view/mytest/index.rhtml
更改为
<% @mytesttbl.each do |obj| %>
<div id="mytesttable">
<%= render(:partial =>"mytesttbl", :object => obj)%>
</div>
<% end %>
编辑:此外,view/mytest/_mytesttbl.html.erb
应该看起来像
<tr>
<td><%= object.name %></td>
<tr>
答案 2 :(得分:0)
你错过了@ user.find_by_id的参数吗?通常当我想得到我的名字时:
控制器 @ user = User.find(params [:id])按特定ID查找用户。
视图
如果你想找到所有用户那么
控制器 @user = User.find(:all)
视图
User.find_by_id是redudant,因为默认情况下User.find按id查找。