Mar*_*iev 1 autocomplete ruby-on-rails
我有些问题.任何人都可以帮我解决我的错误吗?我正在使用来自https://github.com/mikeauclair/rails3-jquery-autocomplete的 rails 3 autocomplete gem 并按照所有说明操作,但有错误:
undefined method `autocomplete_user_nickname' for #<Message:0xa09374c>
Run Code Online (Sandbox Code Playgroud)
我的路线:
resources :messages do
get :autocomplete_user_nickname, :on => :collection
end
Run Code Online (Sandbox Code Playgroud)
MessagesController.rb:
autocomplete :user, :nickname
Run Code Online (Sandbox Code Playgroud)
我的new.html.erb:
<% form_for @message, :url => user_messages_path(@user) do |f| %>
<%= f.text_field :sender_id %>
<%= f.autocomplete_field :autocomplete_user_nickname, autocomplete_user_nickname_messages_path %>
<%= f.text_field :subject %>
<%= f.text_area :body %>
<%= submit_tag "Send" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我做错了什么?谢谢.
根据您链接的项目的自述文件,您的表单字段不正确.你有:
<%= f.autocomplete_field :autocomplete_user_nickname, autocomplete_user_nickname_messages_path %>
Run Code Online (Sandbox Code Playgroud)
自述文件说它应该是:
<%= f.autocomplete_field :user_nickname, autocomplete_user_nickname_messages_path %>
Run Code Online (Sandbox Code Playgroud)
[编辑]
根据您的评论,我假设您有以下内容:
class Message < ActiveRecord::Base
belongs_to :user
end
class MessagesController
def new
@message = Message.new
end
end
Run Code Online (Sandbox Code Playgroud)
我认为您应该使用以下内容作为您的观点:
<%= form_for(@message) do |f| %>
<%= f.hidden_field :user_id, :id => "real_user_id"
To: <%= autocomplete_field_tag 'throwaway_user', '',
autocomplete_user_nickname_messages_path,
:size => 75, :id_element => '#real_user_id' %> <br />
Subject: <%= f.text_field :subject %>
etc...
<% end %>
Run Code Online (Sandbox Code Playgroud)
这样,自动完成字段只是一些一次性数据,但是当它自动完成时,它会将真实用户ID标记(带有ID real_user_id)的值更新为自动完成用户的ID.
[另一个编辑]
由于我不确定你上次评论后的问题是什么,我决定自己制作一个小应用程序.它似乎对我来说很好,所以我假设你的模型有些东西.
你可以在这个GitHub比较视图中看到我做了什么来实现它; 我遗漏了无聊的东西,比如安装jQuery和jQuery UI.您可以在自述文件中看到该应用实际在屏幕截图中工作.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
8901 次 |
| 最近记录: |