-1

親切な人なら誰でもこれを見て、コードの何が問題になっているのかを知ることができますか。連想テーブルのフィールドを撤回してはいけません!私の問題は何ですか?

見る:

<% @playersname.each do |p|%> 
    <ul>
<li><%= p.name %></li>
<li><%= p.result.inspect  %></li>
</ul>

コントローラ:

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

モデル:

  class Player < ActiveRecord::Base
  attr_accessible :name
  belongs_to :result
end

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

移行:

class CreatePlayers < ActiveRecord::Migration
 def change
  create_table :players do |t|
    t.string "name"
    t.references :results
  t.timestamps
  end
end
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
end
4

1 に答える 1

0

ここで、コード内でプレーヤーを複数形にする必要があります。

   has_many :player

する必要があります

   has_many :players

また、あなたの見解では、次のように変更する必要があります。

<li><%= p.result.inspect  %></li>

別のものに。a)「結果」メソッドがないため、機能しません。そのためpのメソッドしかありませんresults。.inspect を呼び出すと、resultsおそらくブラウザに送信したくないものを取得します。

関連付けを理解したら、ビューに次のようなものが必要になる可能性があります。

<h1>Results</h1>
<%= render :partial => "result", :collection => @results %>

次に、ビューフォルダーにパーシャルを作成し、_result.rbこのようなコードを含む名前を付けます

<h3>Result: <%= result.title %></h3>
<p><%= result.body %></p>
于 2012-05-24T16:54:50.353 に答える