Я пытаюсь подключить свои страницы так, чтобы у пользователя была страница показа, и как только они попадают на страницу показа, они видят события. Событие также можно щелкнуть, и как только это событие будет нажато, оно будет непосредственно отображаться на странице показа событий. Ошибка я получаюИдентификатор события 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
Позвольте мне знать, если вам нужно больше кода для выяснения проблемы моя ошибка возникает в форме событий в первой строке. Это было очень неприятно, потому что это должна быть простая задача.
Нормально в 'create' действия вы делаете' redirect_to event_path (@event) 'или что-то подобное. Произвольные вызовы 'render' могут вызвать проблемы. – tadman
Как перенаправить обратно на страницу показа пользователей (то есть, где я создаю события) – Aaron
Иногда стоит передать параметр «перенаправление на» в форме отправки, которую вы используете, чтобы отправить людей на их исходную страницу. Я обычно называю этот параметр 'r' для краткости, но вы можете называть его чем угодно. Просто не забудьте поместить его в форму и убедитесь, что она остается заполненной, даже если есть ошибки в форме, и вам нужно две попытки создать для успеха. – tadman