2014-01-23 2 views
0

Во-первых, я новичок в Rails поэтому, пожалуйста, простите меня, если это хромой новичку вопрос

Я создаю специальные (которые belongs_to :shop) с рельсами form_tag

В моей админ/события/new.html.erb, форма выглядит следующим образом:Рельсы маршрутизации ошибка с form_tag

<%= form_tag new_admin_shop_special_path(@current_shop) do |f| %> 
    <input type = "number" name = "product_ids" /> 

<% end %> 

(путь new_admin_shop_special_path определенно делает существует)
В реках маршрутов у меня есть:

     POST /admin/shops/:shop_id/specials(.:format)       admin/specials#create 
new_admin_shop_special GET /admin/shops/:shop_id/specials/new(.:format)       admin/specials#new 


Мой администратор/specials_controller.rb имеет:

def new 
    end 

    def create 
    special = @current_shop.specials.build 
    special.add_products(params[:product_ids]) 
    redirect_to admin_shop_shipping_options_path, notice: "#{special.id}" 
    end 

(Уведомление для отладки)

Итак, проблема, если я отправьте форму, я получаю сообщение об ошибке

маршрутизация Ошибка

нет маршрута матчей [POST] "/ администратора/магазинов/дорогой РАЭ/скидок/новая"


Помощь.

ответ

0

Это должно работать, если вы используете ресурсы:

<%= form_tag admin_shop_specials_path(@current_shop) do |f| %> 

И да, путь с new на конце действительно существует, но только с GET методом. Когда вы отправляете свою форму, используется метод POST, который не применим для этого маршрута.

+0

Я использовал ресурсы, и он действительно работает. спасибо –

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