这个问题适用于Rails 5.我有一个模型
class Vote < ApplicationRecord
belongs_to :person
然后是包含
的config / routes.rb文件 resources :votes
问题是我想创建路径
/vote/person_id
其中“person_id”实际上是人物对象的ID而不是投票对象。我想我可以像下面这样写一个“link_to”表达式来实现这个
<%= link_to person.name, votes_path(person), :class => 'unvotedPersonLink' %>
但正在发生的是生成的链接
/votes.11
如何调整我的“link_to”或路由文件,以便我能以我想要的格式生成链接?
答案 0 :(得分:0)
如果要查看所有路由,则应运行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
您可以在以下链接中查看有关Rails路线的更多信息:
答案 1 :(得分:0)
这可能会解决路由问题。
的routes.rb
资源:votes,param :: person_id
视图
votes_path(person_id:person.id)
答案 2 :(得分:0)
在您的观看中,您需要传递人员ID,如下所示:
votes_path(person: person)
或者像这样:
votes_path(person, @vote)
或者:
votes_path(person: current_user)
另外,如果您想使用人员ID添加投票,我建议您使用current_user
通过控制器注入人员ID