2011-10-14 37 views
0

我做了一些研究,所以我伸手找不到合適的答案.....創建一個用戶生成後

使用Rails 3.1,並試圖爲用戶創建一個帖子。當我去創建一個測試帖子時,我得到錯誤:

Missing template events/create, application/create with {:locale=>[:en, :en], 
    :formats=>[:html], :handlers=>[:coffee, :erb, :builder]} 

這是一個模板還是應該調整我的路線?

在此先感謝您的幫助。

回答

2

從您在此處提供的日誌中,您應該發佈到事件控制器的創建方法。

以下是從您的回購複製:

def create 
    @event = current_user.events.build(params[:event]) 
    if @event.save 
    flash[:success] = "Event Shared" 
    redirect_to root_path 
    #else 
    # render 'pages/about' 
    end 


    #@event = Event.new   what I had before 
    #@title = "Create An Event" 
end 

所以,如果@event.save失敗,沒有重定向和渲染被註釋掉。因此,默認情況下,rails 3.1會嘗試按以下順序查找視圖文件:events/create,application/create(它與您的日誌匹配)

如果event.save失敗,那麼您很可能會使用render "new"使用events/new.html.erb作爲視圖文件。 (當然這不是必須的,你可以使你想要的任何東西,甚至如果你喜歡重定向)

(希望是什麼,我看在回購不是修改一個:))

+0

謝謝,這很有道理!有時在你面前的人最難看到。 – Alekx

0

可能您需要:

def create 
    @event = current_user.events.build(params[:event]) 
    if @event.save 
    flash[:success] = "Event Shared" 
    redirect_to root_path 
    else 
    render :new 
    end 
end 

它將使用您已經在視圖中顯示的錯誤消息。

相關問題