如何在 rails 上调用这条路线 un Ruby

How to call this route un Ruby on rails

我制作了一个脚手架并制作了class“项目”。 这使 routes.rb 资源。 我做另一条路线

Get 'projects/status/:id', to 'projects#status'

如何在 HTML 代码中调用此 link? 我试过了

<%= link_to "show status", '/status'project.id %>

但是没用。 请帮助

到 link 到您定义的路径使用带插值的纯字符串 :id 参数

# GET /projects/status/:id

# config/routes.rb
get 'projects/status/:id', to: 'projects#status'

# view
<%= link_to 'status', "/projects/status/#{@project.id}" %>

您可以使用 :as 选项添加路径辅助方法。最好附加 status 路径以使其与 rails 约定一致并且不与 :id 参数冲突。这类似于其他 project 路线,例如 editnew。现在你的项目有了 status 路线。

# project_status GET /projects/:id/status

# config/routes.rb
# NOTE: `as: :project_status` will create `project_status_path` and `project_status_url` helpers
get 'projects/:id/status', to: 'projects#status', as: :project_status

# view
# NOTE: path helper will automatically extract `:id` param from @project
<%= link_to 'status', project_status_path(@project) %>

路由可以嵌套在项目资源下。对于所有选项,请参见: https://api.rubyonrails.org/v7.0.2.3/classes/ActionDispatch/Routing/Mapper/Base.html#method-i-match

# status_project GET /projects/:id/status

# config/routes.rb
resources :projects do
  get :status, on: :member
end

# view
<%= link_to 'status', status_project_path(@project) %>

# TODO: maybe fix backwards helper name
# get :status, on: :member, as: :state_of
# => state_of_project_path(@project)

查看您的路线

bin/rails routes
# helper name         # url                              # controller#action
project_status GET    /projects/:id/status(.:format)     projects#status