link_to帮助程序对我不起作用

时间:2010-12-14 10:17:25

标签: ruby-on-rails

控制器文件drummer.rb

我使用旧的控制器/动作方式和新的资源方式,要么工作 视图文件index.html.erb:

<ul>
<% @drummer_list.each do |d| %>
  <li>
    <%= link_to :controller => 'drummers',:action => 'show', :id => '@drummer'  do %>
      <%=  d.first_name + ' ' + d.last_name %>
    <% end %>
  </li>
<% end %>
</ul>

资源方式:

<ul>
<% @drummer_list.each do |d| %>
  <li>
    <%= link_to drummers_path(@drummer)  do %>
      <%=  d.first_name + ' ' + d.last_name %>
    <% end %>
  </li>
<% end %>
</ul>

当我点击每个链接时,在浏览器网址栏中给我这个

http://localhost:3000/drummers/@drummer

它应该给我

http://localhost:3000/drummers/1

我认为问题是关于@drummer,我不确定它。

3 个答案:

答案 0 :(得分:1)

我想也许你想使用“d”代替“@drummer”,因为这是鼓手实例的循环变量?

答案 1 :(得分:1)

<ul>
<% @drummer_list.each do |d| %>
  <li>
    <%= link_to "#{d.first_name} #{d.last_name}", d %>
  </li>
<% end %>
</ul>

如果它变得更复杂,我会把它移到一个集合部分。

答案 2 :(得分:1)

这应该这样做:)

<ul>
<% @drummer_list.each do |d| %>
  <li>
    <%= link_to "#{d.first_name} #{d.last_name}", drummers_path(d) %>
  </li>
<% end %>
</ul>