我在活动节目页面上有一个活动网站,上面有发言人名单,我希望每个发言者都有一个指向发言人展示页面的链接。
我不确定link_to方法应该是什么,这是我到目前为止所拥有的 -
<% @event.speakers.append(nil).each_slice(6) do |speaker_block| %>
<div class="rowOfSpeakers row">
<% speaker_block.each_with_index do |speaker, index| %>
<div class="twocol<%= " last" if index == 5 || index == 11 %>">
<div>
<div class="speakerTwitter">
<%= link_to speaker.twitter, "http://twitter.com/#{speaker.twitter}" %>
</div>
<img src="<%= speaker.avatar %>" alt="<%= speaker.name %>">
</div>
<!-- Heres my link -->
<h3><%= link_to speaker.name, event_speaker_path(@speaker) %></h3>
</div>
<% end %>
</div>
<% end %>
No route matches {:action=>"show", :controller=>"speakers", :event_id=>nil}
def show
@speaker = Speaker.find(params[:id])
end
resources :events do
resources :leads, path: "download", only: [:new, :create]
resources :registrations, path: "register", only: [:new, :create, :index]
resources :speakers, only: [:show]
end
答案 0 :(得分:1)
<%= link_to speaker.name, event_speaker_path(@event, speaker) %>
您引用@speaker
这是一个nil
变量(即它不存在)。查看您的each_with_index
阻止。
此外,由于它是嵌套路线,因此您需要指定“父”,在本例中为@event
。
答案 1 :(得分:0)
要链接到'speakers#show'
,您可以使用speaker_path(@speaker)
。如果您不确定,可以随时运行rake routes
查看应用程序中可用的所有路径。