我正在尝试连接我的页面,以便用户有一个显示页面,一旦他们到达显示页面,他们就会看到事件。也可以单击该事件,单击该事件后,将直接转到该事件显示页面。我得到的错误是
No route matches {:action=>"show", :controller=>"events", :id=>nil}
以下是我的活动表格:
<span class="name">EventName: <%= link_to(event.name, controller: "events", action: "show", id: @event) %></span>
<span class="partycode">PartyCode:<br><%= event.partycode %></span>
这是我的事件控制器:
class EventsController < ApplicationController
def show
@event = Event.find(params[:id])
end
def create
@event = current_user.events.build(event_params)
if @event.save
flash[:success] = "Event Created!"
redirect_to root_url
else
render 'welcome#index'
end
end
def destroy
end
private
def event_params
params.require(:event).permit(:name, :partycode)
end
end
如果您需要更多代码来解决我在第一行的事件表单中发生错误的问题,请告诉我。这真是令人沮丧,因为这应该是一项简单的任务。
答案 0 :(得分:1)
尝试更改
<%= link_to(event.name, controller: "events", action: "show", id: @event) %>
到
<%= link_to(event.name, controller: "events", action: "show", id: event.id) %>
(请注意模板中缺少的@)。
答案 1 :(得分:1)
如何使用event_path(@event)
等路径助手。
您的观点将变为:
<%= link_to(@event.name, event_path(@event) %>