2014-09-03 71 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) 
相關問題