活动ID为零

时间:2016-12-19 22:24:27

标签: ruby-on-rails model-view-controller link-to

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

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

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

2 个答案:

答案 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) %>