2016-08-16 49 views
0

我有一个div,我希望它成为其他页面的链接。通常我们会这样做link_to linkRails,为javascript添加红宝石参数

<% for post in @posts %> 
    <%= link_to "Post", post %> # -> or <%= link_to(post) %> 
<% end %> 

但我需要整个div与js的链接。所以,我做了:

<% for post in @posts %> 
    <div class="post-on-main-page-<%= div_count %>" > 
     <script> 
      $(".post-on-main-page-<%= div_count %>").click(function(){ 
       window.location.href = "<%= link_to(post) %>"; 
       }); 
     </script> 
    </div> 
<% end %> 

但我没有工作。

我需要window.location.href = "<%= link_to(post) %>";其中post是一个参数,给我一个该帖子的链接。

那么我如何才能使这个工作?

+0

为什么不把数据属性添加到'div'并使用该值来重定向? –

+0

试试这个'window.location.href =“#{link_to(post)}”; –

+0

@BrenoPerucchi没有那么坏 – naomik

回答

1

link_to会生成一个完整的<a>元素

您应该使用post_path(post)post_url(post),而是如果你只想路径或URL

+0

谢谢post_url(post)为我工作。 –

0

您可以通过一个blocklink_to帮手像

<% @posts.each do |post| %> 
    <%= link_to post do %> 
    <div class="post-on-main-page"> 
    <!-- Fill in your content --> 
    </div> 
    <% end %> 
<% end %> 

这将生成一个链接到posts#show页面的div。

+0

是的,我意识到这一点。但这对我来说是不好的决定。 –