0

I am making a rails app, and I have a class that is a link (its inside a tag). I want <%= User.find_by_id(p.user_id).username %> to be a link to the user, so my questions are:

1) How do I make it a link to the user?

2) When I click on a link that I make, that is inside another link, it activates the outer link. How can I make the click respond the the inner link instead? (in the code under).

<div class="row">
    <a class="fg" href="#<%= p.id %>" data-toggle="modal">
        <div class="span6 offset3">
            <div class="thumbnail">
                <table border="0" width="100%" cellpadding="5px">
                    <tr>
                        <td>
                            <%= image_tag(p.thumbnail, class: "hoi") %>
                        </td>

                        <td id="tzt2" width="60%">

                            <div id="withJosefin">
                                <%= p.title %>
                            </div>
                            <div id="withLibre">
                                by <%= User.find_by_id(p.user_id).username %> <%= time_ago_in_words(p.created_at) %> ago
                            </div>
                        </td>
                    </tr>
                </table>
            </div>
        </div>
    </a>
</div>
4

2 回答 2

3

您可以使用以下语法创建链接:

<% user = User.find_by_id(p.user_id) %>
<%= link_to user.username, user %>

这相当于:

<%= link_to p.user.username, user_path(p.user) %>

顺便说一句,你为什么要手动加载用户?如果你的关联设置正确,你可以写:

<%= link_to p.user.username, p.user %>

我不确定我是否理解你的第二个问题。如果您可以更清楚地解释它,我将编辑我的答案。

于 2013-04-30T14:05:41.840 回答
0

你不能嵌套超链接。您可以使用一些 JavaScript 来模拟嵌套超链接的效果,或者更好的解决方案是重新组织您的标记,使其成为有效的标记。即你的第一个标签不应该包含 div 等。

于 2013-04-30T14:14:10.703 回答