Я использую гем ActiveRecord-reputation-system, чтобы добавить ссылку на повышение и понижение в мое приложение chat_room, и у меня возникли проблемы с отображением реальной ссылки в моем представлении.
В моем 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]. Я интенсивно искал в Интернете, и единственное, что я могу найти, - это то, что для каждого имеющегося у вас динамического сегмента вам нужно будет передать аргумент. Поэтому я поднял свои маршруты, используя маршруты рельсов, и это маршрут, которыйпоказывает для voice_room_message:
vote_room_message POST /rooms/:room_id/messages/:id/vote(.:format) messages#vote
Я вижу два динамических сегмента здесь (: room_id и: id), однако я не знаю, как требовать их в своем URL. Я пытался использовать
<%= link_to "up", vote_room_message_path(message, type: "up", [:room_id, :message), method: "post" %>
однако это приводит к синтаксической ошибке. Любой совет, как заставить это работать?