0

我是红宝石的新手,并且比我想要的要慢一点。我正在使用 ruby​​ 3.0。对于我创建的数据库中的一个表,我希望主键显示在“索引”页面上。我很难做到这一点。我手动将 id 放在索引视图中,但它一直说“未定义的方法 `venture_round_id'”

这就是我的 index.html 在表格中的样子:

<h1>Listing venture_rounds</h1>
<table>
<tr>
<th>id</th>
<th>company</th>
</tr>
<% @venture_rounds.each do |venture_round| %>
<tr>
<td><%= venture_round.venture_round_id %></td>
<td><%= venture_round.company_id %></td>
<td><% link_to 'show', venture_round %></td>
<td><%= link_to 'Edit', edit_venture_round_path(venture_round) %></td>
<td><%= link_to 'Destroy', venture_round, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>

我手动输入了“venture_round_id”和“id”。

这是我的控制器在索引中的样子:

def index
@venture_rounds = VentureRound.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @venture_rounds }
end
end

我已经研究这个问题两天了,但没有找到太多关于它的信息。我想这个问题与访问它自己的表中的键有关。我的数据库结构中使用 Venture_round_id 作为外键的其他部分工作得很好。任何指示或提示将不胜感激!

4

1 回答 1

5

尝试venture_round.id代替venture_round.venture_round_id

从 MrDanA 编辑:

外键通常采用“table_id”格式,但表自己的主键通常只是“id”。如果您想查看数据库表的外观,可以打开 db/schema.rb 来查看架构。你也可以启动一个 Rails 控制台,如果你只是输入你的类的名字,比如 VentureRound,它会显示它的属性,比如 VentureRound(id: integer, company_id: integer, etc)

于 2013-07-02T17:56:44.767 回答