2014-09-03 2 views
0

У меня есть программа, в которую я внес изменения для моей работы. Я знаю, что должен делать, но у меня проблемы с работой кода. Я исхожу из фона Java и C.Метод RoR для поиска данных в таблице, а затем обновления другого столбца в другой таблице на основе этих данных

У меня есть две таблицы, одна таблица с именем customprojecschedule_lines имеет project_id, workorder_base_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 

В основном то, что я хотел бы, что всякий раз, когда пользователь вводит WorkOrder на номер формы переходит в получает хранится в базе данных значения с этой записью, а затем извлекает идентификатор (из этой записи) и помещает тот же самый идентификатор в мою другую таблицу.

Однако, я получаю эту ошибку:

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

Раньше, когда я пытался вещи, я все время получаю странный отборное заявление о том, что Customschedule ID был нулевым.

Мы используем оракул здесь.

Это моя первая публикация, поэтому, пожалуйста, дайте мне знать, если мне нужно что-нибудь еще.

Любая помощь очень ценится.

ответ

0

Я думаю, что все, что вам нужно, это UPCASE первую букву в этой строке

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

изменить его

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