无法调用我的关联表

时间:2012-05-24 16:48:10

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.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

1 个答案:

答案 0 :(得分:0)

您需要在代码中复制播放器:

   has_many :player

应该是

   has_many :players

另外,在您看来,您应该更改:

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

到别的地方。它不起作用,因为a)p没有“结果”方法,只有results方法。当你在results上打电话给.inspect时,你会得到一些你可能不想发送给浏览器的东西。

一旦你弄清楚了这个协会,你可能想要在你的视图中看到以下内容:

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

然后您将在名为_result.rb的视图文件夹中创建一个部分,并包含此类代码

<h3>Result: <%= result.title %></h3>
<p><%= result.body %></p>