2011-07-28 13 views
2

我想基本上做Twitter的流 - 在同一页面上有create action和index action,但我现在收到一个错误,NilClass从形式。复制Twitters风格 - 在同一页面上集成索引并创建窗体

这是我的看法,那么我的代码

class MistakesController < ApplicationController 

    respond_to :html, :xml, :json 

    before_filter :authenticate_user! 

    def index 
    @mistakes = Mistake.all 
    @user = current_user 

    respond_to do |t| 
     t.html 
    end 
    end 

    def create 

    @mistake = Mistake.new(params[:mistake]) 
    @mistake.user = current_user 

    respond_to do |f| 
     if @mistake.save 
     f.html { redirect_to("/", :notice => 'cool') } 
     else 
     f.html { render :action => 'new' } 
     end 
    end 
    end 

    def new 
    @new_mistake = Mistake.new 
    end 

    def show 
    @mistake = Mistake.find(params[:id]) 
    end 

end 

和index.html.haml

%p test 
%p= @user.email 
= link_to "Create", new_mistake_path 
- semantic_form_for @mistake do |form| 
    = form.inputs :name => "Basic" do 
    = form.input :message 
    = form.input :notes 
    = form.inputs :name => "Topics" do 
    = form.input 
    = form.buttons do 
    = form.commit_button 

我开始去完成创建一个不平凡的Rails应用程序等等的成长的烦恼任何帮助都会很棒。

由于

编辑:

错误Info

消息

undefined method `model_name' for NilClass:Class 

当我认为index.html.haml时发生。

+0

你能发布有关错误的更多信息吗?您在提交表单或仅在您尝试查看时才看到它?错误信息的输出是什么? – stephenmurdoch

+1

编辑得当,谢谢,我会尽力在未来提供这些信息。 – tshauck

回答

2

尝试添加以下内容到控制器

@mistake = Mistake.new 

这是除了你已经在那里的@mistakes变量所需的指标作用...

+0

ps - 您可能在提交表单时遇到问题,除非您将以下代码添加到您的创建操作中:'@mistakes = Mistake.all'。只要牢记它 – stephenmurdoch

+1

感谢你的帮助,像一个魅力工作 – tshauck

0

你可能不需要一个因为该表单现在已成为索引页面的一部分。我建议刚刚摆脱那个行动,并创建重定向到索引。

这是除了stephenmurdoch的建议上面。

相关问题