未创建的对象显示在页面上,重定向失败

时间:2011-05-14 00:46:47

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-1.9.2

我尝试了rails 3,刚刚开始了一个新项目。以下是我输入的内容。

rails new todo
cd todo
bundle install
rails generate scaffold Task done:boolean task:text created:date
rake db:migrate
rails server&
firefox 0.0.0:3000/tasks&

在页面0.0.0:3000/tasks/new上,我填写了字段的一些值,然后点击按钮创建新的task。它会使用空白页重定向到0.0.0:3000/tasks。当我手动重新加载页面时,它显示八个tasks,即使应该只有一个。

当我进一步点击showeditdestroy时,它会说,例如:ActiveRecord::RecordNotFound in TasksController#show Couldn't find Task with ID=1

当我重新加载到0.0.0:3000/tasks时,所有八个tasks仍在那里。

这有什么问题?我的计算机上的rails是否已损坏?

日志

点击“创建任务”后,终端显示

  

开始为127.0.0.1获取“/ tasks / new”   在2011-05-13 22:04:26 -0400
  由TasksController处理#new as   HTML呈现的任务/ _form.html.erb   (6.7ms)渲染任务/ new.html.erb   在布局/应用程序内(25.3ms)   35毫秒内完成200 OK(浏览次数:   27.9ms | ActiveRecord:0.0ms)

通过x tasks/x 1重复八次,从8rescue in merge' /usr/local/lib/ruby/1.9.1/uri/generic.rb:743:in 重复八次:

  

在127.0.0.1开始POST“/ tasks”   2011-05-13 22:04:32 -0400处理   通过TasksController#创建为HTML
  参数:{“utf8”=>“✓”,   “authenticity_token”=> “中QZHWWyE5KcZhLrzRhB4Fgnl9HGiQqNkn17O4CUfUUJU =”,   “任务”=> { “完成”=> “中0” 时,   “任务”=> “中测试\ r \ n” 个,   “创建(1i)中”=> “中2011”,   “创建(2I)”=> “中5”,   “创建的(3R)”=> “中14”},   “commit”=>“创建任务”} AREL   (0.2ms)插入“任务”(“完成”,   “task”,“created”,“created_at”,   “updated_at”)VALUES('f','test',   '2011-05-14','2011-05-14   02:04:32.065805','2011-05-14   02:04:32.065805')重定向到   http://0.0.0:3000/tasks/2已完成   302发现于17ms [2011-05-13   22:04:32] ERROR URI :: InvalidURIError:   方案http不接受   注册表部分:0.0.0:3000(或不好   主机名?)     /usr/local/lib/ruby/1.9.1/uri/generic.rb:746:in   setup_header' /usr/local/lib/ruby/1.9.1/webrick/httpresponse.rb:101:in 合并”     /usr/local/lib/ruby/1.9.1/webrick/httpresponse.rb:163:in   run' /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in send_response”     /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:86:in   {_ 1}}阻止在start_thread'

2 个答案:

答案 0 :(得分:1)

任务是Rails中的保留字。我想这就是为什么导轨以starnge方式运行的原因。

有关其他保留字的列表,请参阅以下任何链接

http://cheat.errtheblog.com/s/rails_reserved_words/

http://www.yup.com/articles/2007/01/31/no-reservations-about-keywords-in-ruby-on-rails

http://oldwiki.rubyonrails.org/rails/pages/ReservedWords

答案 1 :(得分:1)

您正在尝试使用0.0.0:3000访问您的网站,这是一个无效的地址(我实际上很惊讶,甚至可以让您访问该网站)。

在Firefox中打开0.0.0.0:3000,它将完美运行!

(您也可以使用localhost:3000127.0.0.1:3000