У меня есть следующие модели, но я не могу заставить настраиваемый метод reorder_action_items работать. Я, очевидно, пропустил что-то основное.Rails 3 Добавление метода модели ActiveRecord
class ActionList < ActiveRecord::Base
has_many :action_items
scope :today, lambda {
where("day = ?", Date.today)
}
def self.reorder_action_items(new_order)
new_order.each_with_index do |item, index|
ai = self.action_items.find(item)
ai.sort_order = index
ai.save
end
end
end
class ActionItem < ActiveRecord::Base
belongs_to :action_list
end
Это действие моего контроллера.
def update_order
@idlist = params[:id]
@todays_list = ActionList.today.reorder_action_items(@idlist)
end
Здесь выводится сообщение об ошибке.
Started POST "/welcome/update_order" for xxx.xxx.xxx.xx at 2010-07-06 13:50:46 -0500
Processing by WelcomeController#update_order as */*
Parameters: {"id"=>["3", "1", "2"]}
SQL (0.2ms) SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'
Completed in 14ms
NoMethodError (undefined method `action_items' for #<Class:0xa062cb4>):
/home/matthew/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.0.beta4/lib/active_record/base.rb:1041:in `method_missing'
Что именно вы хотите сделать и какую ошибку вы получаете (если есть)? –
Что происходит? Когда вы вызываете ActionList.reorder_action_items (order), он вызывает ошибку, отсутствующую в методе? – robertokl
Что возвращает 'ActionList.today'? –