从div创建一个链接 - Ruby on Rails

时间:2014-02-09 22:08:34

标签: ruby-on-rails hyperlink routes

目前,我在div中有一个正确链接<%= link_to 'Show', profile %>的文本链接。我已经读过以下是将div转换为链接的正确方法

<%= link_to root_path do %>
  <div>Hey!</div>
<% end %>   

虽然当我将其应用到我的区块时,它会给我一个undefined local variable or method 'profile'

 <%= link_to profile do %>
  <div id="profiles" class="transitions-enabled">
   <% @profiles.each do |profile| %>
   <div class="box panel panel-default">
    <div class="panel-body">
     <%= image_tag profile.image.url(:medium) %>
     <%= profile.artist %><br/>  
     <%= link_to 'Show', profile %>
    </div>
   </div>
  <% end %>
 </div>
<% end %>

我没有尝试链接的原始块:

<div id="profiles" class="transitions-enabled">
<% @profiles.each do |profile| %>
  <div class="box panel panel-default">
    <div class="panel-body">
     <%= image_tag profile.image.url(:medium) %>
     <%= profile.artist %><br/>  
     <%= link_to 'Show', profile %>
    </div>
  </div>
<% end %>
</div>

我的控制器:

class ProfilesController < ApplicationController
  before_action :set_profile, only: [:show, :edit, :update, :destroy, :id]

# GET /profiles
# GET /profiles.json
def index
  @profiles = Profile.all
end

# GET /profiles/1
# GET /profiles/1.json
def show
end

# GET /profiles/new
def new
  @profile = Profile.new
end
#...

1 个答案:

答案 0 :(得分:0)

您的第一个示例在很多方面都存在问题 - 您在链接中有链接。我不确定你要从中输出什么 - 但基本上你需要

<%= link_to root_path do %>
  <div>Hey!</div>
<% end %>

替换<%= link_to 'Show', profile %>

的行为

有些事情:

<div id="profiles" class="transitions-enabled">
  <% @profiles.each do |profile| %>
    <div class="box panel panel-default">
      <div class="panel-body">
        <%= image_tag profile.image.url(:medium) %>
        <%= profile.artist %><br/>

        <%= link_to profile do %>
          <div>
            fancy pants stuff here
          </div>
        <% end %>

      </div>
    </div>
  <% end %>
</div>

如果你可以给我一些关于你想要什么的指导我可以发布一些代码来实现这一点,我只是不清楚你正在寻找什么。

另一个例子可能是(如果你想要更多的部分落入<div></div>

<div id="profiles" class="transitions-enabled">
  <% @profiles.each do |profile| %>
    <div class="box panel panel-default">
      <div class="panel-body">

        <%= link_to profile do %>
          <div>
            <%= image_tag profile.image.url(:medium) %>
            <%= profile.artist %><br/>  
            ... more fancy pants stuff here ...
          </div>
        <% end %>

      </div>
    </div>
  <% end %>
</div>