Ruby on Rails - ошибка маршрутизации при использовании вложенных ресурсов с помощником формы - PullRequest
1 голос
/ 03 февраля 2012

Итак, у меня есть отношения, где сервис has_many статусы

У меня есть это в моем файле rout.rb

resources :services do
  resources :statuses
end

и это мой файл statuses_controller

class StatusesController < ApplicationController
  def new
    @status = Status.new(:parent_id => params[:parent_id])
  end  

  def create
    @service = current_user.services.find(params[:id])
    @status = Status.new(params[:status])
    if @status.save
      flash[:notice] = "New status created."
    else
      flash[:error] = "Error creating new status."
    end
    redirect_to service_statuses_path
  end
end

и я получаю сообщение об ошибке:

undefined method `statuses_path' for #<#<Class:0x000001045dbb28>:0x00000104554e48>

при попытке загрузить:

http://localhost:3000/services/2/statuses/new

с файлом views / statuses / new.html.erb

<%= form_for [@service, @status], :path =>service_statuses_path do |f|%>
  <%= f.label :status %>
  <%= f.text_field :state %><br />

  <%= f.submit %>
<% end %>

Почему он до сих пор дает мне неопределенный метод statuses_path?

1 Ответ

0 голосов
/ 03 февраля 2012

Не уверен, что это является причиной ошибки.Но вы должны изменить вызов метода

service_statuses_path

на

service_statuses_path(@service, @status)

, который будет генерировать путь, как показано ниже.1009 *

...