2014-09-03 70 views
0

我有一个程序,我正在对我的工作进行更改。我知道我必须做什么,但我有问题让代码工作。我来自Java和C背景。RoR方法搜索表中的数据,然后基于该数据更新另一个表上的另一列

我有两个表一个表称为customprojecschedule_lines有一个project_id,workorder_base_id和其他各种列的列。

另一张名为customschedule的表具有一个id,工作顺序栏和各种其他栏。

我有一个方法和变量叫做工单。

我试图得到一个SQL语句,将是这样做的:

class Customschedule < ActiveRecord::Base 
set_table_name "customschedules" 
after_create :build_customprojectschedule_lines 
has_many :customprojectschedule_lines, :dependent => :destroy 

has_one :projectschedule_cost 
delegate :est_cost, :act_cost, :to => :projectschedule_cost, :allow_nil => true 

attr_accessor :workorder_base, :lots 

def workorder 
customschedule.where(:id => customprojectschedule_lines.product_id) 
end 

def workorder=(wo) 
@workorder_base = wo 
customprojectschedule_lines.each do |pl| 
    pl.update_attributes({:workorder_base_id => wo}) 
end 
end 

def build_customprojectschedule_lines 
lines = @lots.split(',').inject([]) do |lines, lot_id| 
    line = customprojectschedule_lines.find_or_initialize_by_workorder_lot_id(lot_id) 
    if line.new_record? 
    p workorder_base 
    line.workorder_base_id = @workorder_base 
    line.line_no = lot_id 
    line.workorder_split_id = 0 
    end 
    lines << line 
end 
customprojectschedule_lines.replace(lines) 
end 

基本上我想的是,只要用户输入的表格数工作单进入数据库获取存储值与该记录,然后检索该ID(从该记录),并将该相同的ID在我的另一个表中。

不过,我不断收到此错误:

undefined local variable or method `customschedule' for #   
<Customschedule:0x00000005542040> 

当我试图东西我一直得到一个怪异的select语句说Customschedule ID为空之前。

我们在这里使用oracle。

这是我第一次在这里发帖,所以请让我知道如果我需要别的东西。

任何帮助,非常感谢。

回答

0

我认为,所有你需要的是upcase的第一个字母在这一行

customschedule.where(:id => customprojectschedule_lines.product_id) 

改变它

Customschedule.where(:id => customprojectschedule_lines.product_id) 
相关问题