我做了一些研究,找不到合适的答案,所以我要伸出手......
使用Rails 3.1并尝试为用户创建帖子。当我去创建测试帖时,我收到错误:
Missing template events/create, application/create with {:locale=>[:en, :en],
:formats=>[:html], :handlers=>[:coffee, :erb, :builder]}
这是一个模板还是我应该调整路线?
提前感谢您的帮助。
答案 0 :(得分:2)
从这里提供的日志中,您应该发布到Events控制器的创建方法。
以下内容从您的回购邮件中复制:
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作为视图文件。 (当然这不是必须的,你可以渲染任何你想要的东西,如果你愿意,甚至可以重定向)
(希望我在回购中查看的内容不是修改过的:))
答案 1 :(得分: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
它将使用您在视图中已有的错误消息。