2014-01-02 2 views
0

Я создал пользовательский маршрут в моем routes.rb клонировать свою деятельность по активности ID следующим образом:Пользовательского маршрут не использует: идентификатор

resources :activities 
get "/activities/:id/clone" => "activities#clone", :as => :clone_activity 
post "/activities/:id/clone" => "activities#clone" 

Когда я использую <%= clone_activity_url(@activity) %> в настоящее время; Это показывает мне http://localhost:3000/activities//clone. вместо прикрепленного идентификатора.

Почему мой ID не отображается?

ответ

1

Вам нужно обернуть маршруты внутри блока, как этот

resources :activities do 
    get "clone" => "activities#clone", :as => :clone_activity 
    post "clone" => "activities#clone" 
end 

Это сделает это так, что GET или POST на пути /activities/:activity_id/clone вызовет метод на activities#clone

Кроме того, путь будет называться «activity_clone_activity_path» (или url) - вы можете изменить это в своем коде, если хотите, также это будет ссылаться только на путь get, поскольку вы только прикрепляли: как к пути получения, приложите к ним, если вам нужно.

+0

Еще один полезный трюк, по договоренности, если мы оставим часть рельсов части «activites # clone», автоматически примет действие «клонировать» в контроллере «activity_controller» – derekyau

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