Я расскажу о некоторых основных руководствах по Rails и рассмотрю основы
и такой для предстоящего экзамена. Одним из руководств был
своего рода стандартное руководство по началу работы на guide.rubyonrails.org.
Вот ссылка, если вам это нужно. Также весь мой код для моего приложения
оттуда, так что у меня нет проблем с выпуском любого моего кода, так как он
должно быть таким же, как показано там. Я не делал копировальную пасту, но я
в основном печатал с Vim в одной половине моего экрана и в Интернете
страницу в другой половине, набрав то, что я вижу.
http://guides.rubyonrails.org/getting_started.html
Так что, как я уже сказал, я иду вдоль гида, когда я заметил мимо
определенный момент в учебнике, я всегда получал сообщение об ошибке
сайт. Чтобы найти раздел кода, просто нажмите Ctrl + F на странице (или
все, что у вас есть для поиска / поиска установлено) и введите "acceptpts_". это
должен немедленно направить вас к этому куску кода.
class Post < ActiveRecord::Base
validates_presence_of :name, :title
validates_length_of :title, :minimum => 5
has_many :comments
has_many :tags
accepts_nested_attributes_for :tags, :allow_destroy => :true ,
:reject_if => proc { |attrs| attrs.all? { |k, v| v.blank? } }
end
Итак, я попытался вставить это в мой код. Он находится в
~ / Rails / blog / app / models / post.rb на случай, если вам интересно. Тем не мение,
даже после всего другого кода, который я вставил в прошлое, в руководстве, надеясь,
Я просто пропустил какую-то строку кода, которая появится позже в
руководство. Но ничего, одна и та же ошибка каждый раз. Это то, что я получаю.
NoMethodError в PostsController # index
неопределенный метод `accepts_nested_attributes_for 'для # <класса: 0xb7109f98>
/ USR / Lib / рубин / драгоценные камни / 1,8 / драгоценные камни / ActiveRecord-2.2.2 / Библиотека / active_record / base.rb: 1833: в
`Method_missing»
приложение / модели / post.rb: 7
app / controllers / posts_controller.rb: 9: в `index '
Запрос
Параметры:
нет
Ответ
Заголовки:
{ "Content-Type" => "",
"Печенье" => [],
"Cache-Control" => "нет кэша"}
Теперь я скопировал приведенный выше код из руководства. Два раздела кода я
Отредактировано упомянуто в сообщении об ошибке, я буду вставлять, как показано ниже.
class PostsController < ApplicationController
# GET /posts
# GET /posts.xml
before_filter :find_post,
:only => [:show, :edit, :update, :destroy]
def index
@posts = Post.find(:all) # <= the line 9 referred to in error message
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
end
end
class Post < ActiveRecord::Base
validates_presence_of :name, :title
validates_length_of :title, :minimum => 5
has_many :comments
has_many :tags
accepts_nested_attributes_for :tags, :allow_destroy => :true , # <= problem
:reject_if => proc { |attrs| attrs.all? { |k, v| v.blank? } }
end
Также вот список драгоценных камней. Я отмечаю, что они немного устарели, но по умолчанию Rails устанавливает любую из школьных машин (среда, вероятнее всего, для моего экзамена) в основном «gem install rails - версия 2.2.2», и, поскольку они являются машинами Windows, они поставляются со всеми обычными Windows Ruby Gems, которые идут с установщиком Ruby. Тем не менее, я запускаю это на моей виртуальной машине Debian, но пытаюсь настроить ее аналогичным образом, и я решил, что гемы ruby для Windows ничего не изменят в Rails.
*** LOCAL GEMS ***
actionmailer (2.2.2)
actionpack (2.2.2)
activerecord (2.2.2)
activeresource (2.2.2)
activesupport (2.2.2)
gem_plugin (0.2.3)
hpricot (0.8.2)
linecache (0.43)
log4r (1.1.7)
ptools (1.1.9)
rack (1.1.0)
rails (2.2.2)
rake (0.8.7)
sqlite3-ruby (1.2.3)