如何使用 Ruby 在 Javascript (js.erb) 中设置 url

How set url in Javascript (js.erb) with Ruby?

本文关键字:erb 设置 url js 何使用 Ruby Javascript      更新时间:2023-09-26

>我有这个

路线

put :sort, :path => 'activities/sort', :controller => 'activities'

JS:

url: '/activities/sort',

我想转换为这个(不使用控制器名称或 :as 属性):

url: <%= :action => 'sort' %>, 

或像这样的东西的相同 href:

<%= link_to "Order by name",
         :sort,
         :method => :put %>

你应该在路由中写下这个网址。喜欢:

config/routes.rb

match 'activities/sort_by_attr' => 'activities#sort', :as => :sort_by_attr

然后写

url: <%= sort_by_attr_path %>, 
你会

routes.rb中定义这样的resources :activities路由,这将免费为您提供七条RESTful路由。但是,您不限于 RESTful 路由默认创建的七个路由。如果您愿意,可以添加适用于集合或集合的各个成员的其他路由。

resources :activities do
  collection do
    get 'sort_by_attr'
  end
end

resources :activities do
  get 'sort_by_attr', :on => :collection
end

您可以使用 :as 选项为任何路由指定名称,如下所示:

resources :activities do
  get 'sort_by_attr', :on => :collection, :as => :sort
end

这会给你sort_activities_pathsort_activities_url.阅读更多关于 Rails Routing from the Outer In 的信息。

编辑:

如果只是将:action参数传递给link_to它将尝试在当前控制器中找到该路由并呈现该操作。虽然不建议这样做,但您可以尝试定义通用路由以匹配任何 url,如下所示:

match ':controller/:action'