У меня есть форма для создания нового мероприятия для организации. Маршрутизации:Rails 3 Пути не работают, как ожидалось
resource :organisations do
resource :events
end
Когда я редактирую событие, на успех I пути назад к шоу действия в контроллере событий, как, например:
def update
@organisation = current_user.organisations.find(params[:organisation_id])
@event = @organisation.events.find(params[:id])
if @event.update_attributes(params[:event])
# Handle a successful update.
flash[:success] = "Event updated"
redirect_to organisation_event_path
else
render 'edit'
end
end
Когда я создаю событие, я тоже хочу его перенаправлять на события показывают действие, осуществляется следующим образом:
def create
@organisation = current_user.organisations.find(params[:organisation_id])
@event = @organisation.events.create(params[:event])
if @event.save
flash[:success] = "Event added!"
redirect_to organisation_event_path
else
render 'new'
end
end
Однако это приводит следующее сообщение об ошибке: No route matches {:action=>"show", :controller=>"events"}
Это связано с тем, что URI не имеет идентификатора события/имени в нем, насколько я могу понять. Вероятно, это мое отсутствие понимания генерации пути, но как я могу достичь желаемого результата?
Я думаю, что вам нужно передать идентификатор организации в к redirect_to organisation_event_path, потому что событие создается в организации, так организация признает по организации ид. –