Добавление Char.Количество и ограничение для записей в блоге - PullRequest
0 голосов
/ 28 апреля 2011

Я создаю блог, используя RoR с функцией входа в систему, и я хочу ограничить каждую отправку статьи до 1000 символов и чьих-либо комментариев до 350 макс. Как бы я реализовал или даже начал это?

В идеале счетчик символов будет отсчитываться при добавлении символа и менять цвет в минусовых числах (например, в Twitter).

или

Статья или комментарий выдает флэш-уведомление, если пользователь превышает лимит.

Я думаю, что я действительно могу ограничить количество символов, добавив в модель следующее:

validates_length_of: article,: максимум => 800

validates_length_of: comment,: максимум => 400

Это метод показа пользователю количества оставшихся символов по мере их ввода, но пока на стороне клиента? Может ли RoR сделать это?

Ответы [ 4 ]

1 голос
/ 28 апреля 2011

Вот решение, которое реализует проверку на стороне сервера и отображает «флэш» сообщение об ошибке, когда проверка завершается неудачей.

В вашей статье модель:

class Article < ActiveRecord::Base
  ...
  validates_length_of :note, :maximum => 1000
  ...
end

В вашем ArticleController:

  def create
    @article = Article.new
    if @article.update_attributes(params)
      redirect_to articles_path
    else
      render :action => "new"
    end
  end

В ваших статьях:

<%= form_for @article do |f| %>
  // This can be moved to a template
  <% if @article.errors.any? %>
  <div id="error_explanation">
    <h2>
      <%= pluralize(@article.errors.count, "error") %> prohibited this record from being saved:
    </h2>

    <ul>
      <% @article.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
    </ul>
  </div>
  <% end %>

  // More form fields
<% end %>
1 голос
/ 28 апреля 2011

Вы должны будете сделать это в javascript, так как вам нужна функциональность на стороне клиента. У вас также должны быть проверки моделей, чтобы гарантировать сохранение этого ограничения (вы можете легко обойти проверки javascript, просто отправив POST, используя что-то вроде curl).

Поиск в Google для "счетчика символов JavaScript" дает множество результатов.

1 голос
/ 28 апреля 2011

Проверки, которые вы запрашиваете, очень просты.
Я бы посоветовал вам реализовать их на стороне клиента в браузере, используя javascript, jquery или любую другую инфраструктуру js по вашему выбору.вы выполняете проверки на стороне сервера, в Rails вам все равно нужно будет связать элемент текстового поля с некоторыми событиями javascript, связанными с ним.
Так что не выполняйте такие проверки на стороне сервера (здесь Rails), еслиВы хотите такой высокий уровень пользовательского интерфейса.

0 голосов
/ 10 мая 2011

Здесь вы найдете хорошее «кросс-браузерное» решение с помощью плагина jQuery, который будет выполнять работу и «мешать» пользователям отправлять статьи на выделенную сумму на стороне клиента. Здесь Требуемый плагин Rails: Здесь

...