このチュートリアルに従いました: http://railscasts.com/episodes/102-auto-complete-association
しかし、うまくいきませんでした。
私がしたことは次のとおりです。
を使用してプラグインをインストールしました
rails plugin install git://github.com/rails/auto_complete.git
私の message.rb で user_name を宣言します
def user_name
user.username if user
end
def user_name= (username)
self.user = User.find_or_create_by_username(username) unless username.blank?
end
私のapplication.html.hamlに追加しました
= javascript_include_tag :defaults
私のプロフィール/users/index.js.erb
<%= auto_complete_result @users, :username %>
走ってみたhttp://localhost:8080/profile/users.js
そして、意図したユーザーのリストを出力します。
私の users_controller.rb で
auto_complete_for :message, :user_name
def index
@users = User.find(:all, :conditions => ['username LIKE ?', "%#{params[:search]}%"])
respond_to do |format|
format.html # index.html.erb
format.js # index.js.erb
end
end
ルートをかき集めると、ビューに必要な適切な出力が得られます
profile_users GET /profile/users(.:format) {:action=>"index", :controller=>"profile/users"}
最後に私のプロフィール/messages/compose.html.hamlに
= form_for :message, :url => send_message_profile_messages_path do |message|
%label{:for => "friend"} To:
%br
= text_field_with_auto_complete :message,:user_name, {:size => 15} , {:url =>profile_users_path(:format => :js), :method => :get, :param_name => 'search' }
%br
%label{:for => "message"} Body:
%br
= message.text_area :message
%br
= message.file_field :attachment
%br
= submit_tag "Send", :confirm => "Are you sure?"
私は何を間違えましたか?