创建用户生成的帖子

时间:2011-10-14 04:31:07

标签: ruby-on-rails ruby

我做了一些研究,找不到合适的答案,所以我要伸出手......

使用Rails 3.1并尝试为用户创建帖子。当我去创建测试帖时,我收到错误:

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

这是一个模板还是我应该调整路线?

提前感谢您的帮助。

2 个答案:

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

它将使用您在视图中已有的错误消息。