事件 ID 为零

Event id is nil

我正在尝试连接我的页面,以便用户拥有一个显示页面,一旦他们到达显示页面,他们就会看到事件。也可以点击事件,一旦点击该事件,它就会直接进入该事件显示页面。我得到的错误是

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

如果您需要更多代码来解决问题,请告诉我我的错误出现在第一行的事件表单中。这真的很令人沮丧,因为这应该是一项简单的任务。

尝试改变

<%= link_to(event.name, controller: "events", action: "show", id: @event) %>

<%= link_to(event.name, controller: "events", action: "show", id: event.id) %>

(注意模板中缺少的@)。

使用 event_path(@event).

等路径助手怎么样?

您的视图将变为:

<%= link_to(@event.name, event_path(@event) %>