Я учусь, когда строил свой воображаемый сайт электронной коммерции. Я заметил, что нет способа повторно заказать продукцию. Поэтому я добавил поле в базу данных и расширил модель. Все хорошо работает в IRB/Pry.Spree - Admin - Пользовательский контроллер - Форма сообщения - Переадресация на логин
Теперь я собираюсь добавить его как функцию в конец Шпрее. Я добавил подменю на вкладку продукта и новый контроллер для выполнения задачи. Идея состоит в том, чтобы показать список текстовых полей и выбрать и при отображении упорядочить по полю. Звучит просто.
Но когда я отправляю форму, это заставляет меня выйти из раздела администратора и перенаправлять меня на страницу входа. Я попытался с PostMan (chrome) сделать пустой HTTP-пост и получил тот же результат
Это мой контент.
Контроллер/Шпрее/администратор/product_order_controller.rb
class Spree::Admin::ProductOrderController < Spree::Admin::BaseController
def index
@products = Spree::Product.order('placement_order ASC')
end
def update
end
end
просмотров/Шпрее/администратор/product_order/index.html.slim
= render :partial => 'spree/admin/shared/product_sub_menu'
h1 Product Order
form method="post" action="/admin/product_order/update"
h3 Select the order of products :-
table
tr
td Image
td Name
td Order
- @products.each do | product |
= render :partial => 'spree/admin/product_order/product_order', :locals => { :product => product }
input type="submit" name="submit" value="Submit"
routes.rb
match '/admin/product_order' => 'spree/admin/product_order#index'
match '/admin/product_order/index' => 'spree/admin/product_order#index'
match '/admin/product_order/update' => 'spree/admin/product_order#update'
на пост: он перенаправляет на http://localhost:3000/login
Я делаю что-то неправильно, или я делаю это по-другому?
Заранее спасибо.
Имейте большой понедельник, я знаю ... его будет ужасна для большинства из нас :)
Вы должны полагаться на помощника form_tag, чтобы вручную не писать форму и маршруты, если это возможно. Следуйте за советом по рельсам, сделайте вашу жизнь проще. –
Вам нужно выяснить, что заставляет вашу страницу перенаправляться на страницу входа. Я предполагаю, что проверка доступа не работает.Вы должны увидеть, если вы получаете исключение CanCan :: AccessDenied, которое где-то спасается, которое перенаправляет вас на страницу входа. Похоже, что ваше действие обновления не выполняется, а это значит, что что-то происходит до того, как оно когда-либо попадет в ваш класс. – gmacdougall