# that no changes should be made (since they can't be persisted).
def destroy
if persisted?
self.class.unscoped.where(self.class.arel_table[self.class.primary_key].eq(id)).delete_all
end
@destroyed = true
freeze
end
3 июля 2011 г. 0:37 пользователь Andrew Hoffmann aka SKYDOS
<hoffmann.andrey@rocketmind.ru> написал:
> Хм... delete_all работает.
> Спасибо.
>
> Всё таки интересует, если можно обойтись без primary key с использованием
> destroy.
>
> On 07/02/2011 09:34 PM, Саша А wrote:
>
> Или delete_all использовать.
>
> 3 июля 2011 г. 0:33 пользователь Саша А <elequtree@gmail.com> написал:
>
> Он хочет primary key. Самым простым способом будет навтыкать id в таблицу.
>
> 3 июля 2011 г. 0:27 пользователь Андрей Хоффманн
> <hoffmann.andrey@rocketmind.ru> написал:
>
> Нет, выдает :
>
> NoMethodError: undefined method `eq' for nil:NilClass
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_support/whiny_nil.rb:48:in
> `method_missing'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/persistence.rb:79:in
> `destroy'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/locking/optimistic.rb:110:in
> `destroy'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/callbacks.rb:256:in
> `block in destroy'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.7/lib/active_support/callbacks.rb:414:in
> `_run_destroy_callbacks'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/callbacks.rb:256:in
> `destroy'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/transactions.rb:235:in
> `block in destroy'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/transactions.rb:292:in
> `block in with_transaction_returning_status'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in
> `transaction'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/transactions.rb:207:in
> `transaction'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/transactions.rb:290:in
> `with_transaction_returning_status'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/transactions.rb:235:in
> `destroy'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/relation.rb:226:in
> `block in destroy_all'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/relation.rb:226:in
> `each'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/relation.rb:226:in
> `destroy_all'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/relation.rb:224:in
> `destroy_all'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.0.7/lib/active_record/base.rb:440:in
> `destroy_all'
> from (irb):18
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in
> `start'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in
> `start'
> from
> /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/commands.rb:23:in
> `<top (required)>'
> from script/rails:6:in `require'
> from script/rails:6:in `<main>'
>
> наткнулся на интересное обсуждение:
> http://stackoverflow.com/questions/3124290/undefined-method-eq-for-nilnilclass-with-rails-3-and-ruby-enterprise-on-ubuntu
> неужели так и не исправили этот глюк в рельсах?
> использовать connection.execute или всё таки есть другое решение?
>
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
> "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror2ru@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> ror2ru-unsubscribe@googlegroups.com
> Дополнительные варианты находятся на странице группы
> http://groups.google.com/group/ror2ru?hl=ru
>
>
> --
> Regards,
>
> Andrew Hoffmann
>
> Social Network && RoR Developer
> Department of Social Integration
>
> R O C K E T M I N D G R O U P
>
> hoffmann.andrey@rocketmind.ru | www.rocketmind.ru
>
> +7 8 920 930 7517 Mobile
>
> Skype: SKYDOS
> ICQ: 395 019 123
>
> Данное электронное письмо и любые приложения к нему являются
> конфиденциальными и предназначены исключительно для адресата. Если Вы не
> являетесь адресатом данного электронного письма, пожалуйста, уведомьте
> отправителя немедленно, не раскрывайте содержание другому лицу, не
> используйте его в каких-либо целях, не храните и не копируйте информацию
> любым способом.
>
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
> "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror2ru@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> ror2ru-unsubscribe@googlegroups.com
> Дополнительные варианты находятся на странице группы
> http://groups.google.com/group/ror2ru?hl=ru
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru
Комментариев нет:
Отправить комментарий