我试图将2个模型——<代码>Athletes 和Results
联系起来。
They have the following fields:
Athletes - :name :year :g结束er
Results - :name :event :performance
我添加了<条码>标签_to :athlete 至results.rb
。 & supplemented has_many :results
to athletes.rb
我想用的是:名称属性是把这两种模式联系起来的主要关键,因为意图是让所有运动员在开始时上载,然后在剩余季节使用结果投入。
我编辑了<条码>成果—控制器条码>至:
def create
#this was the initial code....
#@result = Result.new(params[:result])
# This is the new code to try set up an association
@athlete = Athlete.where( name = ? , Peter )
@result = @athlete.results.create(params[:result])
respond_to do |format|
if @result.save
format.html { redirect_to @result, notice: Result was successfully created. }
format.json { r结束er json: @result, status: :created, location: @result }
else
format.html { r结束er action: "new" }
format.json { r结束er json: @result.errors, status: :unprocessable_entity }
结束
结束
结束
但是,这产生了以下错误:未界定的编号和编号方法结果;活性记录:Relation:0x36a2b28>
。 我也希望使用以下线路:@athlete = Athlete. where ("name = ?”, params [:name])
,然而,它保持了产生“NUL 参数值......”。
谁能向我指出正确的方向?
Extra information: Results migration
class CreateResults < ActiveRecord::Migration def change
create_table :results do |t|
t.string :name
t.string :event
t.decimal :performance
t.timestamps
结束
#add in new line here
add_index :results, :name
结束 结束
移民问题
class CreateAthletes < ActiveRecord::Migration
def change
create_table :athletes do |t|
t.string :name
t.integer :year
t.string :g结束er
t.timestamps
结束
结束
结束
结果.rb:
class Result < ActiveRecord::Base
belongs_to :athlete
结束
Athlete.rb
class Athlete < ActiveRecord::Base
has_many :results
结束