2012-05-24 37 views
-1

无法在我的视图中调用我的关联表。已经尝试过。这是一个只会增加玩家的应用程序。新闻“开始游戏”后,他应该来到所有球员结果的结果视图。那么我当然会拥有“玩家”表的名称,然后是“结果”表中的绑定结果。现在在叠纸,i输入在后台只要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 

+0

如果您在播放器模型中添加“belongs_to:result”,您的问题是否得到解决? – cristian

+0

没有保罗,我有 类播放器<的ActiveRecord :: Base的 attr_accessible:命名 belongs_to的:导致 结束 – Max

回答

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_one :result更换has_many :results,所以你可以做@myplayer.result让你的结果。

+0

播放器是不是我的问题。有结果。我设置result.try ...但我发现错误“找不到表'结果'” – Max

+0

至于现在,我认为你倒相关系的逻辑。看我的编辑。并告诉更多关于你想要的球员和结果之间的关系。 –

相关问题