【问题标题】:objects that are not created show on the page, and redirect fails未创建的对象显示在页面上,并且重定向失败
【发布时间】:2011-08-25 08:12:00
【问题描述】:

我试用了 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 开始 GET "/tasks/new" 在 2011-05-13 22:04:26 -0400
TasksController#new as 处理 HTML 渲染任务/_form.html.erb (6.7ms) 渲染任务/new.html.erb 在布局/应用程序内(25.3 毫秒) 在 35 毫秒内完成 200 次 OK(查看次数: 27.9 毫秒 |活动记录:0.0ms)

随后类似这样的事情重复了八次,tasks/x 中的x1 变为8

在 127.0.0.1 开始 POST "/tasks" 2011-05-13 22:04:32 -0400 处理 通过 TasksController#create as HTML
参数:{"utf8"=>"✓", "authenticity_token"=>"QZHWWyE5KcZhLrzRhB4Fgnl9HGiQqNkn17O4CUfUUJU=", "任务"=>{"完成"=>"0", "任务"=>"测试\r\n", “创建(1i)”=>“2011”, “创建(2i)”=>“5”, “创建(3i)”=>“14”}, “提交”=>“创建任务”} AREL (0.2ms)插入“任务”(“完成”, “任务”,“创建”,“created_at”, "updated_at") 值 ('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] 错误 URI::InvalidURIError: 该方案http不接受 注册表部分:0.0.0:3000(或错误 主机名?) /usr/local/lib/ruby/1.9.1/uri/generic.rb:746:in rescue in merge' /usr/local/lib/ruby/1.9.1/uri/generic.rb:743:in merge' /usr/local/lib/ruby/1.9.1/webrick/httpresponse.rb:163:in setup_header' /usr/local/lib/ruby/1.9.1/webrick/httpresponse.rb:101:in send_response' /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:86:in run' /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in block in start_thread'

【问题讨论】:

  • 点击“创建任务”时development.log 会显示什么?

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


【解决方案1】:

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

改为在 Firefox 中打开 0.0.0.0:3000,它会完美运行!

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

【讨论】:

  • dmarkow 你是完全正确的。情况就是这样。谢谢你。我的问题只是一个愚蠢的错误。
  • 感谢您的加入。我将使用localhost。这样会减少麻烦。
【解决方案2】:

Task 是 Rails 中的保留字。我想这就是 Rails 表现不佳的原因。

有关其他保留字的列表,请参阅这些链接中的任何一个

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

【讨论】:

  • 感谢您的回答。我没有意识到这一点。如果不同的话,我试过了,现在,我得到了七个重复而不是八个。所以你的观点可能是一个因素,但我似乎仍然有问题。
  • 我的主要生产站点有一个Task 模型,我以前从未遇到过问题。
猜你喜欢
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多