Объекты, которые не созданы, отображаются на странице, и перенаправление завершается неудачно
Я опробовал рельсы 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
хотя там должен быть только один.
Когда я далее нажимаю либо show
, edit
, или же destroy
говорит, например, для: ActiveRecord::RecordNotFound in TasksController#show
Couldn't find Task with ID=1
,
Когда я перезагружаюсь к 0.0.0:3000/tasks
все восемь tasks
все еще там.
Что не так с этим? Рельсы повреждены на моем компьютере?
Журнал
Когда я нажимаю "создать задачи", терминал отображает
Запущен GET "/tasks/new" для 127.0.0.1 в 2011-05-13 22:04:26 -0400
Обработка TasksController#new as HTML Рендеринг заданий /_form.html.erb (6,7 мс) Рендеринг заданий /new.html.erb в макетах / приложении (25,3 мс) Выполнено 200 ОК за 35 мс (просмотров: 27,9 мс | ActiveRecord: 0,0 мс)
следуя что-то вроде этого, повторил восемь раз с x
в tasks/x
варьируется от 1
в 8
:
Запуск POST "/tasks" для 127.0.0.1 в 2011-05-13 22:04:32 -0400 Обработка с помощью TasksController # создать как HTML
Параметры: {"utf8"=>"✓", "authenticity_token"=>"QZHWWyE5KcZhLrzRhB4Fgnl9HGiQqNkn17O4CUfUUJU=", "task"=>{"done"=>"0", "task"=>"test\r\n", "созданный (1i)"=>"2011", "созданный (2i)"=>"5", "созданный (3i)"=>"14"}, "commit"=>"Создать задачу"} AREL (0,2ms) INSERT INTO "задачи" ("выполнено", "задача", "создано", "создано_," обновлено_at") ЗНАЧЕНИЯ ('f', 'test ', '2011-05-14', '2011-05-14 02:04:32.065805', '2011-05-14 02:04:32.065805') Перенаправлено на http://0.0.0.0:3000/tasks/2 Завершено 302 Найдено за 17 мс [2011-05-13 22:04:32] URI ОШИБКИ::InvalidURIError: схема http не принимает часть реестра: 0.0.0:3000 (или неверное имя хоста?) /Usr/local/lib/ruby/1.9.1/uri/generic.rb:746:в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:insetup_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:inrun' /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in
блок в start_thread'
2 ответа
Вы пытаетесь получить доступ к своему сайту с помощью 0.0.0:3000
это неверный адрес (на самом деле я удивлен, что это вообще дает вам доступ к сайту).
открыто 0.0.0.0:3000
вместо Firefox, и он будет работать отлично!
(Вы также можете использовать localhost:3000
или же 127.0.0.1:3000
)
Задача - это зарезервированное слово в 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