-1

ビューで関連テーブルを呼び出すことができません。これを試しました。プレイヤーに追加するだけのアプリです。「ゲームを開始」を押した後、すべてのプレイヤーの結果が表示される結果ビューに移動する必要があります。次に、もちろん「プレーヤー」テーブルの名前と、「結果」テーブルからのバインド結果を取得します。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

終わり

4

1 に答える 1

0

CreateResults 移行で player_id 列が欠落しています。

Result クラスで行い、移行を修正しますbelongs_to :player(または別の移行を行います)。

[編集] 私は十分に明確ではありませんでした: 私はあなたが関係の論理を逆にしたと思います. あなたは実際に「1つの結果には複数のプレーヤーがいます」としました。プレーヤーに複数の結果が必要だと思いますか?

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

1 対 1 の関係が必要な場合は、and に置き換えることを検討has_many :resultsしてください。has_one :resultそうすれば@myplayer.result、結果を得ることができます。

于 2012-05-24T14:30:04.937 に答える