Rails错误“NoMethodError” – 我的第一个ruby应用程序

我绝对是全新的rails,所以答案可能非常简单。 开始:

我的页面正在生成此错误

 任务#new中的NoMethodError
显示第3行引发的app / views / tasks / new.erb:

用于#的未定义方法`tasks_path'

以下是观点:

  : 
:

控制器:

 class TasksController  :id) end def new @task = Task.new end ...(more) 

和模型:

我看不出有什么问题,但就像我说的那样,到目前为止我还是一无所知。 谢谢!

 class Task < ActiveRecord::Base validates_presence_of :description belongs_to :priority has_and_belongs_to_many :staff has_and_belongs_to_many :catagory end 

你有没有

 map.resources :tasks 

在你的路线?

谢谢你的回答。

正如预测的那样,简单的问题。

 <% form_for(@task) do |f| %> 

应该:

 <% form_for(:task) do |f| %> 

有趣的是,你发布后立即找到问题的答案! 再次感谢。

关于这段代码:

 @all_tasks = Task.find(:all, :order => :id) 

您不需要按ID指定顺序,因为它是默认行为。 所以这应该足够了。

 @all_tasks = Task.find(:all) 

这可以进一步浓缩到下面

 @all_tasks = Task.find.all 

此外,rails约定是将实例变量命名为@tasks

 @tasks = Task.find.all 

享受Rails的乐趣。

请在View中检查你的文件名..它应该有扩展名.html.erb不仅.erb

您是否使用脚手架生成器生成了此示例? 因为如果不是,您可能忘记在routes.rb中定义ressource url映射:

 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,6 @@ ActionController::Routing::Routes.draw do |map| + map.resources :tasks + 

添加路线后别忘了重新启动webrick!