在 Rails 中,如何编写一个生成"/path/id"格式的link_to表达式?



这个问题是针对铁轨5。我有一个模型

class Vote < ApplicationRecord
  belongs_to :person

,然后是包含

的config/doutes.rb文件
  resources :votes

问题是我要创建一个路径

/vote/person_id

" person_id"实际上是一个人对象的ID,而不是投票对象。我以为我可以像下面写下" link_to"表达式来实现此次

<%= link_to person.name, votes_path(person), :class => 'unvotedPersonLink' %>

,但是发生的是生成的链接

/votes.11

如何调整我的" link_to"或路由文件,以便我可以以我想要的格式生成链接?

如果要查看所有路由,则应运行rails routes命令。您的投票资源如下:

votes_path returns /votes
new_vote_path returns /votes/new
edit_vote_path(:id) returns /votes/:id/edit 
vote_path(:id) returns /votes/:id 

您可以在以下链接中查看有关导轨路线的更多信息:

http://guides.rubyonrails.org/routing.html

这可能会解决路由问题。

routes.rb

资源:投票,param :: person_id

查看

votes_path(person_id:person.id(

在您的视图中,您需要通过以下方式传递人ID:

votes_path(person: person)

或喜欢:

votes_path(person, @vote)

或:

votes_path(person: current_user)

另外,如果您想使用个人ID添加投票,我建议您使用Current_user

通过控制器注入人ID

最新更新