我想基本上做Twitter的流做 - 在同一页面上有创建动作和索引动作,但我现在从表单中得到一个错误,NilClass。
这是我的观点,然后是我的代码
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应用程序的痛苦,所以任何帮助都会很棒。
由于
编辑:
错误信息
消息
undefined method `model_name' for NilClass:Class
当我查看index.html.haml。
时发生答案 0 :(得分:2)
尝试将此添加到控制器的索引操作
@mistake = Mistake.new
除了你已经拥有的@mistakes变量之外,这是必需的......
答案 1 :(得分:0)
您可能根本不需要新操作,因为该表单现在是索引页的一部分。我建议只是摆脱那个动作并改为创建重定向到索引。
这是对stephenmurdoch上述建议的补充。