Link_to автоматически передает: id, когда указан контроллер? - PullRequest
3 голосов
/ 25 февраля 2012

У меня есть ссылка_код

<%= link_to "#{(pages_counter/2) + 1}", { controller: "videos", action: 'videos_navigate', offset: pages_counter }, remote: true %>

При нажатии на ссылку автоматически передается идентификатор видео, что означает, что я не передавал явно видеообъект или идентификатор через код link_to. Это происходит потому, что я непосредственно определил контроллер и действие, как показано в приведенном выше коде? Заранее спасибо

образец созданного URL: / videos / videos_navigate / 1? Offset = 2

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Если вы находитесь на странице показа, где идентификатор уже указан в URL, а ваша ссылка не указывает идентификатор, он будет выбирать идентификатор из URL.То же самое произошло бы, если бы вы не указали контроллер, вместо этого он захватил бы текущий контроллер, в котором вы находитесь.

Так что, если вы перейдете к записи 2 и нажмете на ту же ссылку, ваш URL будет / videos /videos_navigate / 2? смещение = 2

0 голосов
/ 25 февраля 2012

Почему бы вам не сделать ссылку непосредственно на маршрут? Например, запустите rake routes в консоли, он должен распечатать имя пути для вашего videos_navigate пути ... тогда вы, вероятно, можете ссылаться на него так:

<%= link_to "#{(pages_counter/2) + 1}", videos_navigate_path, :remote => true %>

Если у него еще нет пути, вы можете указать его, добавив :as => 'videos_navigate' в объявление маршрута для действия внутри файла config.routes.rb. Прочтите здесь для получения дополнительной информации о маршрутизации и путях .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...