Я создал плагин, похожий на движок, благодаря новым функциям Rails 2.3. Это модуль «Продукт» для CMS, экстраполированный из ранее существующей (и работающей) модели / контроллера.
Плагин использует easy_fckeditor и globalize (описание и поле заголовка локализованы), и я подозреваю, что глобализация может быть причиной здесь ...
Все отлично работает, кроме действия обновления.
Я получаю следующее сообщение об ошибке: (публикуя только первые строки, все сообщение о attribute_methods)
stack level too deep
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:64:in `generated_methods?'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:241:in `method_missing'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/lib/active_record/attribute_methods.rb:249:in `method_missing'
Для справки полный стек ошибок здесь: http://pastie.org/596546
Я попытался отладить, удалив все поля ввода, одно за другим, но я продолжаю получать сообщение об ошибке. fckeditor не кажется виновником (ошибка даже без fckeditor)
Это действие:
def update
params[:product][:term_ids] ||= []
@product = Product.find(params[:id])
respond_to do |format|
if @product.update_attributes(params[:product])
flash[:notice] = t(:Product_was_successfully_updated)
format.html { redirect_to products_path }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @product.errors, :status => :unprocessable_entity }
end
end
end
Как видите, это довольно просто.