-1

在我看来,无法调用我的关联表。试过这个。这是一个只添加到播放器的应用程序。按下“开始游戏”之后,他应该来到结果查看所有玩家的结果。那么我当然会有“玩家”表的名称,然后是“结果”表中的绑定结果。现在询问,我在后台输入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

结尾

4

1 回答 1

0

CreateResults 迁移错过了 player_id 列。

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

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

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 :resultshas_one :result,这样您就可以@myplayer.result得到您的结果。

于 2012-05-24T14:30:04.937 回答