我想实现类似如下: -如何在link_to中使用ruby变量值作为“链接显示文本”?
<%= link_to "<%= user.email %>", users_path %>
使每一位用户的电子邮件ID是用来作为一个超链接到他们的用户个人资料页面。
如何实现这一目标? 我正在使用rails 3.0.1。
由于提前
我想实现类似如下: -如何在link_to中使用ruby变量值作为“链接显示文本”?
<%= link_to "<%= user.email %>", users_path %>
使每一位用户的电子邮件ID是用来作为一个超链接到他们的用户个人资料页面。
如何实现这一目标? 我正在使用rails 3.0.1。
由于提前
唐接近的指数,但users_path是(我相信)指数一个UsersController的动作,所以你不需要(并且实际上不应该传递)用户进入帮助器。
link_to实际上是一个辅助方法,它接受几个参数。第一个参数是链接本身的文本(<a>
和</a>
之间的内容)。您不需要使用您尝试使用的ERB语法,只需传递所需的任何文本(user.email或user.name,无论如何)。
<%= link_to user.email, user_path(user) %>
试试下面的,因为你要链接到一个用户,而不是所有的用户
<%= link_to user.email, user_path(user) %>
@Saran:你的问题是Rails 3的,但如果你曾经使用Rails的2,不要忘了到html逃生:用'H(user.email)',而不是'user.email' – Zabba 2010-11-05 18:41:04
通过默认情况下,'users_path'转到#index操作,所以这个答案实际上会将每个人的电子邮件地址链接到(大概是)“所有用户”页面。此外,在下面的步骤Don中,'user_path(user)'在本例中是'user'的同义词,因此整个事物可以简化为'<%= link_to user.email,user%>'。 – Eric 2010-11-05 19:41:22
@Eric Hill是的,你说得对。我犯了使用users_path的错误,因为他在原始示例中使用了它,尽管他在他的问题中说他想链接到单个用户页面而不是所有用户页面。更新为正确的答案。谢谢! – 2010-11-05 20:54:15