我在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。
为什么我的身份证不显示?
答案 0 :(得分:1)
您需要将路径包装在像
这样的块中resources :activities do
get "clone" => "activities#clone", :as => :clone_activity
post "clone" => "activities#clone"
end
这将使得路径/activities/:activity_id/clone
的GET或POST将触发activities#clone
此外,该路由将被称为“activity_clone_activity_path”(或url) - 如果需要,您可以在代码中更改此路径,这也只会引用get
路径,因为您只附加了:至于获取路径,如果需要,请附加到两者。