私は自分のページを接続しようとしているので、ユーザーにはショーページがあり、ショーページに行くとイベントが表示されます。イベントはクリックすることもできます。クリックするとそのイベントの表示ページに直接移動します。ここでイベント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
は、あなたがより多くのコードが必要な場合は私に知らせて、私が取得していますエラーがここ
No route matches {:action=>"show", :controller=>"events", :id=>nil}
が私のイベントの形のように見えるものです私のエラーは、最初の行のイベントフォームで発生する問題を把握する。これは簡単な作業でなければならないので、これは本当にイライラしています。
をあなたは 'redirect_to event_path(@event)'または類似した何かを 'create'アクションで。任意の 'render'呼び出しは問題を引き起こす可能性があります。 – tadman
ユーザーの表示ページ(イベントを作成する場所)にどのようにリダイレクトするのですか – Aaron
送信フォームの「リダイレクト先」パラメータを元のページに戻すために使用する場合があります。私は通常、このパラメータを簡潔さのために 'r'と呼んでいますが、あなたはそれをあなたが望むものと呼ぶことができます。フォーム自体に入れて、フォームエラーがあっても作成が成功するために2回の試行が必要な場合でも、フォームが入力されたままになっていることを確認してください。 – tadman