我正在使用rails 4而我正在尝试创建一个带有关联的新模型对象,这里是我的db文件
class CreateClients < ActiveRecord::Migration
def change
create_table :clients do |t|
t.string :nume
t.string :nrtel
t.string :email
t.string :datan
t.string :var
t.string :var1
t.string :var2
t.string :var3
t.string :var4
t.string :var5
t.timestamps
end
end
end
class CreateProgs < ActiveRecord::Migration
def change
create_table :progs do |t|
t.string :data
t.string :descriere
t.string :status
t.string :var
t.string :var1
t.string :var2
t.string :var3
t.string :var4
t.string :var5
t.timestamps
end
end
end
class AddClientidToProgs < ActiveRecord::Migration
def change
add_column :progs, :clientid, :integer
end
end
并且在progs控制器中,新方法看起来像这样
def new
#@client = Client.find(params[:client_id])
c = Client.new
@prog = c.progs.build
end
我收到此错误:
未知属性:client_id
提取的来源(第19行): 17 18 19 20 21 22
#@client = Client.find(params[:client_id])
c = Client.new
@prog = c.progs.build
端
Rails.root:/ home / salon
应用程序跟踪|框架跟踪|完整追踪 app / controllers / progs_controller.rb:19:在'new'中 请求
参数:
{"client_id"=>"1"}
有人能指出我正确的方向吗?
答案 0 :(得分:1)
首先应在client
和progs
之间设置关联。
class AddClientidToProgs < ActiveRecord::Migration
def change add_column :progs, :client_id, :integer
end
end
你写错了&#34; clientid&#34;。
两件事是关联应该像
client class
has_many :progs
prog class
belongs_to client
最后:
@client = Client.find(params[:client_id])
prog = @client.progs.build # or @client.progs.new
上面的命令会在client_id
对象中设置prog
。