-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 回答