无法在我的视图中调用我的关联表

时间:2012-05-24 13:47:06

标签: ruby-on-rails

无法在我的视图中调用我的关联表。试过这个。它是一个只会增加玩家的应用程序。按下“开始游戏”然后他应该来到结果视图所有玩家的结果。那么我当然会得到“玩家”表的名称,然后是“结果”表的绑定结果。现在在quire,我只要在后台进入bidningen

视图:

<% @playersname.each do |p|%> 
 <ul>
    <li><%= p.name %></li>
    <li><%= p.results.try(:result) %></li>
 </ul>
<%end%>

控制器:

 class ResultsController < ApplicationController
 def index
        @playersname = Player.all
  end

型号:

class Result < ActiveRecord::Base
  # attr_accessible :title, :body
  has_many :players
end

迁移:

class CreateResults < ActiveRecord::Migration
 def change
   create_table :results do |t|
        t.string "result", :limit => 40
        t.string "cal", :limit => 40
            t.string "sum",:limit => 300
            t.timestamps
     end
  end

1 个答案:

答案 0 :(得分:0)

CreateResults迁移错过了player_id列。

在Result类中执行belongs_to :player并更正迁移(或执行另一个迁移)。

[编辑]我不够清楚:我认为你颠倒了关系逻辑。 你实际上做了“一个结果有几个球员”。 我想你想要一个玩家有几个结果?

class Player
  has_many :results
end

class Result
  belongs_to :player
end

所以你可以这样做:

@myplayer = Player.all.first
@myplayer.results #it is an array of player's results
@myplayerresult = @myplayer.results.first
puts @myplayerresult.result

如果您想要一对一的关系,请考虑将has_many :results替换为has_one :result,这样您就可以@myplayer.result来获得结果。