在我的Rails应用程序中,我有一个设备端口的列表视图,每个设备端口都属于一个设备:
device.rb
has_many :device_ports, :foreign_key => "device_id"
device_port.rb
belongs_to :device
device_port_controller.rb
def list
@device_ports = DevicePort.paginate(:all, :page => params[:page], :per_page => 100, :order => "name")
@devices = Device.find(:all)
end
list.rhtml
<table width="100%">
<tr>
<th>Name</th>
<th>Device</th>
</tr>
<%= render :partial => 'device_port/list_item', :collection => @device_ports %>
</table>
_ list_item.rhtml
<tr>
<td><a href='/device_port/update/<%= list_item.id %>'><%= list_item.name %></a></td>
<td><%= list_item.device_id %></td>
</tr>
所以我正在显示device_id
表中的device_ports
,但实际上我想要显示name
表的devices
列。
我做了一些非常相似的事情,可能在我的应用程序的其他地方稍微有点困难,我选择了正确的设备名称,但是我似乎无法弄清楚如何在选择菜单的上下文中执行此操作
我在上面的控制器中的@devices
变量中有设备,并试图使用list_item.device_id
来查找它,但它似乎不起作用。
这可能是一件非常简单的事情,但我似乎无法找到获得理想结果的正确方法。
答案 0 :(得分:1)
as device_ports belongs_to device so list_item.device.name
谢谢!
答案 1 :(得分:1)
我刚刚在控制台中对此进行了测试,但它应该可行。您可以在模型上调用返回数组的columns
。
所以,我刚用过我的用户模型:
User.columns[0].name #=> 'id'
据推测,你的
Device.columns[x].name
编辑:我把这个问题读作“[列]的名称”