2015-07-10 6 views
0

Я работаю над проектом Rails, и я хочу реализовать на нем проверку формы. Когда проверка на стороне клиента и/или стороне сервера завершается с ошибкой, я хочу, чтобы автопопуляция полей формы со значениями, введенными пользователем ранее, и указанием тех полей, которые были неверными.Проверка правильности формы Rails

То, что я пытаюсь реализовать, это создать модель ValidForm и использовать проверки для проверки на стороне клиента. Как я могу продолжить заполнение полей заполнения и отслеживание того, что вызвало ошибку проверки формы. Также в этой форме я должен загрузить файл, который необходимо проверить для проверки на стороне сервера.

Я новичок в Rails, поэтому, пожалуйста, укажите мне в правильном направлении, чтобы реализовать это.

ответ

0

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

приложение/контроллеры/posts_controller.rb:

class PostsController < ApplicationController 
    def new 
    @post = Post.new 
    end 

    def create 
    @post = Post.new(post_params) 
    if @post.save 
     flash[:success] = "Post was created!" 
     redirect_to posts_path 
    else 
     flash[:error] = "Post could not be saved!" 
     # The 'new' template is rendered below, and the fields should 
     # be pre-filled with what the user already had before 
     # validation failed, since the @post object is populated via form params 
     render :new 
    end 
    end 

    private 

    def post_params 
    params.require(:post).permit(:title, :body) 
    end 
end 

приложение/просмотров/сообщений/new.html.erb:

<!-- Lists post errors on template render, if errors exist --> 

<% if @post.errors.any? %> 
    <h3><%= flash[:error] %></h3> 
    <ul> 
    <% @post.errors.full_messages.each do |message| %> 
    <li> 
     <%= message %> 
    </li> 
    <% end %> 
<% end %> 

<%= form_for @post, html: {multipart: true} |f| %> 
    <%= f.label :title %> 
    <%= f.text_field :title, placeholder: "Title goes here" %> 

    <%= f.label :body %> 
    <%= f.text_area :body, placeholder: "Some text goes here" %> 

    <%= f.submit "Save" %> 
<% end %> 

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

Там также полезная RailsCasts screencast на проверка на стороне клиента.

RailsGuides имеет большой набор документов по проверке ActiveRecord (model).

Надеюсь, это поможет!

+0

Спасибо, я читаю все это. Но сейчас все как все испортилось, я не могу соединить все это. Как начать кодирование. Не могли бы вы сказать мне, какие шаги следует выполнять, чтобы реализовать и понять больше. –

Смежные вопросы