2015-04-28 6 views
0

В терминале:ArgumentError: неверное число аргументов (0 для 1) Рельсы 4

2.2.0 :001 > sr=ServiceRequest.only_deleted.where(:id=>57) 

=> #<ActiveRecord::Relation [#<ServiceRequest id: 57, sr_number: "SRN57", email: "[email protected]", phone: "54545121", subject: "change of address", body: "sdssssssssssssss", status_id: 1, request_type_id: 1, customer_id: nil, created_at: "2015-04-24 13:06:52", updated_at: "2015-04-28 05:13:05", deleted_at: "2015-04-28 05:13:05">]> 2.2.0 :004 > sr.destroy

ArgumentError: wrong number of arguments (0 for 1) Я использую paranoia камень в моих application.I хотят уничтожить эту запись из базы данных. Как я уничтожу эту запись, пожалуйста, помогите мне.

+0

Помог ли мой ответ? –

ответ

1

Вы хотите найти особенное ServiceRequest. Таким образом, вместо where, используйте find:

sr = ServiceRequest.only_deleted.find(57) 

или find_by, если вы не хотите, чтобы вызвать ошибку, если запись не найдена:

sr = ServiceRequest.only_deleted.find_by(id: 57) 

, то вы можете позвонить destroy на это:

sr.destroy 

Но, кажется, что вам нужно на самом деле уничтожить объект из БД, так как он уже отмечен как «разрушен», так что вы должны скорее использовать:

sr.really_destroy! 
+0

Раньше я использовал really_destroy, но он не работает с where clause. Но все это делается с помощью find_by.Почему это не работает с предложением where? –

+1

@Udaykumardas, потому что он предназначен для работы, например, не по отношению. –

+0

Благодарю вас за ваше время. –

Смежные вопросы