Как проверить наличие пользователя из автозаполнения в рельсах - PullRequest
0 голосов
/ 13 июня 2011

Я использую рельсы 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%>

В блоге _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

У моего блога есть идентификатор, заголовок, owner_id

И моя модель имеет валидирование validates_presence_of: owner_id,: title

Приведенный выше код прекрасно работает, при этом валидация владельца не должна быть пустой

Но он не проверяет не того пользователя

Например,если я что-то печатаю там, где такого пользователя не существует. В этом случае, если я отправляю форму без результатов, найденных в поле, даже в тот раз, когда я получаю владельца, не должно быть пустым.

Как проверить существование Пользователя в этом случае и добавить это в сообщения об ошибках.

1 Ответ

0 голосов
/ 13 июня 2011

Ваш код очень странный. Почему вы не используете Rails 3? Почему вы не используете REST и CRUD? Извините, но лучше переписать код абсолютно.

Похоже, что PHP-код, вы использовали php?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...