Итак, у меня есть следующая ссылка-на:Rails не находя действия контроллера
<%= link_to(outing_add_guests_path, :class => 'modal') do %>
<div id="notImportant"></div>
<% end %>
Когда я нажимаю на него, Rails говорит мне, что
No route matches {:controller=>"outings", :action=>"add_guests"}
Однако, вот мой файл маршруты:
resources :outings do
get "/add_guests" => "outings#add_guests"
post "/add_guests" => "outings#add_guests"
delete "/remove_guests" => "outings#remove_guests"
end
и соответствующее действие из моих пикников контроллера:
def add_guests
@outing_guest = OutingGuest.new(:outing_id => params[:outing_id])
@outing_guest.user_id = params[:user_id]
if @outing_guest.save
flash[:notice] = "Guest added successfully"
redirect_to({ :action => 'outing', :id => params[:outing_id] })
else
flash[:notice] = "Guest could not be added"
redirect_to({ :action => 'outing', :id => params[:outing_id] })
end
end
Есть ли причина, по которой Rails не сможет обнаружить мой контроллер или его действия?
EDIT: Вот часть результатов от граблей маршрутов
outing_add_guests GET /outings/:outing_id/add_guests(.:format) outings#add_guests
POST /outings/:outing_id/add_guests(.:format) outings#add_guests
Я попытался изменить его на outings_add_guests_path, но он сказал, что метод не определен. Я добавил маршрут грабли вверх. –
Ваши маршруты не настроены правильно. см. мое редактирование – Dty
Да, это была проблема. Это представление для нового Outing, но Add Guests было написано, чтобы добавить гостей в существующую прогулку, поэтому для этого требуется outing_id. –