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!