Я создал очень простое приложение для блога, используя Ruby on Rails. Новичок в Ruby и Rails, так что извините за глупые вопросы.
В настоящее время у меня есть две таблицы, которые относятся к этому вопросу. У меня есть таблица сообщений и таблица тегов. В основном я настроил его так, чтобы Post has_many :tags
и Tag belongs_to :post
. Я использую AJAX для обработки и отображения тегов в представлении представления сообщения.
Я установил плагин auto_complete и получаю сообщение об ошибке при вводе букв в text_field_with_auto_complete для создания тега. Я подозреваю, что это потому, что форма представляет собой remote_form_for или что-то, что я делаю неправильно в маршрутах. Вот ошибка и код:
Error
Processing PostsController#show (for 127.0.0.1 at 2010-04-13 23:25:46) [GET]
Parameters: {"tag"=>{"tag_name"=>"f"}, "id"=>"auto_complete_for_tag_tag_name"}
Post Load (0.1ms) SELECT * FROM "posts" WHERE ("posts"."id" = 0)
ActiveRecord::RecordNotFound (Couldn't find Post with ID=auto_complete_for_tag_tag_name):
app/controllers/posts_controller.rb:22:in `show'
Rendered rescues/_trace (26.0ms)
Rendered rescues/_request_and_response (0.2ms)
Rendering rescues/layout (not_found)
remote_form_for находится в /views/posts/show.html.erb
<% remote_form_for [@post, Tag.new] do |f| %>
<p>
<%= f.label :tag_name, "Tag" %><br/>
<%= text_field_with_auto_complete :tag, :tag_name, {}, {:method => :get} %>
</p>
<p><%= f.submit "Add Comment" %></p>
<% end %>
tags_controller.rb (я избавлю вас от всех действий, но добавил следующее здесь)
auto_complete_for :tag, :tag_name
routes.rb
map.resources :posts, :has_many => :comments
map.resources :posts, :has_many => :tags
map.resources :tags, :collection => {:auto_complete_for_tag_tag_name => :get }