Как использовать значение переменной ruby ​​в качестве текста отображения ссылки в link_to?

Я пытаюсь добиться чего-то вроде следующего: -

<%= link_to "<%= user.email %>", users_path %>   

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

Как этого добиться? Я использую рельсы 3.0.1.

Заранее спасибо


person Hemanth    schedule 05.11.2010    source источник


Ответы (2)


Дон близок, но users_path - это (я полагаю) индексное действие UsersController, поэтому вам не нужно (и на самом деле не следует передавать) пользователя в помощник.

link_to на самом деле является вспомогательным методом, который принимает несколько аргументов. Первый аргумент — это текст самой ссылки (то, что находится между <a> и </a>). Вам не нужно использовать синтаксис ERB, который вы пытаетесь использовать, просто передайте любой текст, который вы хотите (user.email или user.name, что угодно).

<%= link_to user.email, user_path(user) %>
person Brett Bender    schedule 05.11.2010
comment
@Saran: ваш вопрос касается Rails 3, но если вы когда-нибудь будете использовать Rails 2, не забудьте использовать html escape: используйте h(user.email) вместо user.email - person Zabba; 05.11.2010
comment
По умолчанию users_path переходит к действию #index, поэтому этот ответ фактически свяжет все адреса электронной почты со страницей (предположительно) всех пользователей. Кроме того, подчеркните Дона ниже, user_path(user) является синонимом user в этом примере, поэтому все это можно упростить как <%= link_to user.email, user %>. - person Eric; 05.11.2010
comment
@ Эрик Хилл Да, ты прав. Я сделал ошибку, используя user_path, потому что он использовал его в своем исходном примере, хотя в своем вопросе он сказал, что хочет ссылаться на страницу отдельного пользователя, а не на страницу всех пользователей. Обновлено до правильного ответа. Спасибо! - person Brett Bender; 05.11.2010

Попробуйте следующее, так как вам нужна ссылка на пользователя, а не индекс всех пользователей

<%= link_to user.email, user_path(user) %>
person Don Pinkster    schedule 05.11.2010