2016-04-25 4 views
1

Код ниже хорошо работает для создания новых транзакций в представлении «Просмотр счетов». Однако он не работает в пространстве имен admin. т.е./администратора/счета/1 /, но работает на/счета/1/Конструктор форм Rails с пространством имен admin

show.html.erb

<%= form_for([@invoice, @invoice.transactions.build]) do |form| %> 
.... 
transactions form input 

routes.rb

resources :invoices do 
    resources :transactions 
end 
+0

Каково значение атрибута 'action' формы в визуализированном представлении? – Uzbekjon

+0

/счета-фактуры/1/сделки –

ответ

0

При вызове form_for на маршруте имен, как /admin/invoices/1/, Rails автоматически добавит admin на ваш маршрут. Другими словами, form_for([@invoice, @invoice.transactions.build]) отправил бы POST на маршрут, например /admin/invoice/:id/transactions/, а не /invoice/:id/transactions/.

Чтобы исправить, явно установить URL формы и использовать вспомогательный метод маршрут, чтобы вывести правильный маршрут:

form_for(@invoice, url: invoice_transaction_url(@invoice.id)) 

Обратите внимание, что вам может понадобиться для замены invoice_transaction_url с правильным маршрутом. Используйте rake routes, чтобы найти вспомогательный метод, который соответствует желаемому действию POST контроллера.

+0

Спасибо за быструю обратную связь. Мой действующий адрес: /счета-фактуры/1/сделки Кажется, что это не прилагается. Я не уверен, что это правильно. После отправки я получаю сообщение об ошибке «неинициализированная константа TransactionsController», и я заканчиваю на/invoices/1/transaction вместо admin/invoices/1/transaction –

+0

В какой строке вы видите ' uninitialized constant TransactionsController "', это 'form_for'? Контроллер транзакций определен в пространстве имен? –

+0

Да, он определен в пространстве имен. ресурсы: счета сделать ресурсы: Операции конец имен: админ делать ресурсы: Операции конец Ошибка происходит на URL (/ счета-фактуры/1/сделки) без маршрутов, определенных так счетов-фактур и сделок не являются доступ только в админ. –

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