如何从rails中的自动完成检查用户是否存在

时间:2011-06-13 13:41:17

标签: ruby-on-rails autocomplete

我正在使用rails 2.3.11。我在模型博客

中使用了text_field_with_autocomplete
        <% remote_form_for :blog, :url => {:controller => "blogs", :action =>"add_blog"} do |f|%>
              <%= f.text_field :title, :class => "admtxt1 wd1 lfloat" %>

               <%= text_field_with_auto_complete "user_login", :login, { :size => 15}, { :url => {:controller => 'users', :action => 'autocomplete_for_blogowners'}, :method => :get, :param_name => 'term', :indicator => "spinner"} %>

                <%= submit_tag "Save", :class => "btn-small margintop10" %>
        <%end%>

在blogs_controller中,我有

的add_blog动作
 def add_blog
   unless params[:blog].nil?
       @blog = Blog.new(params[:blog])
        @user = User.find_by_login(params["user_login"][:login])
        @blog.owner = @user
   end

  respond_to do |format|
    if @blog.save
           @saved = true
           format.js { render :action => 'add_blog' }
    else
           @saved = nil
           format.js { render :action => 'add_blog' }
    end
  end
 end

在我的add_blog.js.rjs文件中

     if @saved.nil?
           page.replace_html 'message','<div id="msg" class = "textcolor3">' + @blog.errors.full_messages.join('<br />') + '</div>'
     else
             page.replace_html 'message','<div id="msg" class = "h3txt textcolor3"> Blog created successfully </div>'
     end

我的博客表有id,title,owner_id

我的模型有验证   validates_presence_of:owner_id,:title

以上代码与所有者的验证完全无效

但它没有检查错误的用户

例如。如果我正在输入这样的用户不存在的东西。在这种情况下,如果我提交的表格中没有找到任何结果,那么即使我得到所有者也不应该是空白。

如何在这种情况下检查用户是否存在,并将其添加到错误消息中。

1 个答案:

答案 0 :(得分:0)

你的代码很奇怪。你为什么不使用Rails 3? 你为什么不使用REST和CRUD? 抱歉,最好绝对重写代码。

好像是php代码,你用过php吗?