我正在使用ActiveRecord-信誉系统gem向我的chat_room应用添加upvote和downvote链接,但在获取实际链接以显示在我的视图中时遇到了一些麻烦。
在我的Room.show中我放了:
<%= link_to "up", vote_room_message_path(message, type: "up"), method: "post" %>
我得到一个错误:
No route matches {:action=>"vote", :controller=>"messages", :id=>"1", :room_id=>#<Message id: nil, created_at: nil, updated_at: nil, user_id: nil, room_id: 1, body: nil>, :type=>"up"}, possible unmatched constraints: [:room_id]
向我展示的是“可能无与伦比的对比:[:room_id]。我在网上进行了广泛搜索,我唯一能找到的是,对于您拥有的每个动态细分,您都需要传递一个参数。所以我使用Rails路线拉出了我的路线,这是为vote_room_message显示的路线:
vote_room_message POST /rooms/:room_id/messages/:id/vote(.:format) messages#vote
我在这里看到两个动态段(:room_id和:id),但是我不知道如何在我的网址中声明它们。我尝试使用
<%= link_to "up", vote_room_message_path(message, type: "up", [:room_id, :message), method: "post" %>
但是这会带来语法错误。有关如何进行这项工作的任何建议?