所以我在堆栈上看到了其他关于这个的文章,而且很多时候人们没有做@post = post.new。我读了一些在哪里使用复数...??
我在讨论代码中遇到此错误的任何方式:
模型
class Discussion < ActiveRecord::Base
has_many :comment
belongs_to :author
attr_accessible :author_id, :content, :title
validate :comment, :presence => true
validate :title, :presence => true
end
讨论控制器
class DiscussionsController < ApplicationController
def index
@discussion = Discussion.new
@discussions = Discussion.all
end
def create
@discussion = Discussion.create(params[:discussion])
if @discussion.save
redirect_to tasks_path, :flash => {:success => 'Created a new discussion'}
else
redirect_to tasks_path, :flash => {:error => 'Failed to create a discussion'}
end
end
end
讨论表
<%= form_for @discussion do |f| %>
<p><%= f.label :title %>
<%= f.text_field :title %></p>
<p><%= f.label :content %>
<%= f.text_area :content %></p>
<% end %>
讨论路线
resources :discussions do
resources :comments
end
现在据我所知,我这样做是正确的,因为我有一个基本上以相同方式设置的任务表单 - 但我已经查看了我的代码几个小时,并在谷歌上搜索并尝试了其他示例,现在我看到了:
undefined method `model_name' for NilClass:Class
Extracted source (around line #1):
1: <%= form_for @discussion do |f| %>
2:
3: <p><%= f.label :title %>
4: <%= f.text_field :title %></p>
这应该意味着我从控制器中遗漏了一些东西......它是否像拼写错误一样愚蠢?>.>