Ruby on rails 添加字符。博客条目的计数和限制

Ruby on rails 添加字符。博客条目的计数和限制,ruby-on-rails,count,blogs,character,Ruby On Rails,Count,Blogs,Character,我正在使用RoR创建一个带有登录功能的博客,我想将每篇文章提交限制为1000个字符,任何人的回复评论最多为350个字符。我将如何实现甚至开始 理想情况下,添加一个字符时,字符数会倒计时,在负数时会改变颜色(如Twitter) 或者 如果用户超过限制,文章或评论会弹出一个flash通知 我认为我可以通过在模型中添加以下内容来限制字符数: 验证:article的长度,:max=>800 验证的长度为:comment,:max=>400 这是一种在用户键入时向用户显示剩余字符数的方法,但现在是在客户端

我正在使用RoR创建一个带有登录功能的博客,我想将每篇文章提交限制为1000个字符,任何人的回复评论最多为350个字符。我将如何实现甚至开始

理想情况下,添加一个字符时,字符数会倒计时,在负数时会改变颜色(如Twitter)

或者

如果用户超过限制,文章或评论会弹出一个flash通知

我认为我可以通过在模型中添加以下内容来限制字符数:

验证:article的长度,:max=>800

验证的长度为:comment,:max=>400


这是一种在用户键入时向用户显示剩余字符数的方法,但现在是在客户端吗?RoR能做到这一点吗?

您要求的验证非常简单。
我建议您使用javascript、jquery或您选择的任何其他js框架在浏览器的客户端实现它们

如果您在Rails中的服务器端进行验证,您仍然需要将textfield元素与一些与之关联的javascript事件绑定起来。

因此,如果您想要如此高级别的UI,请不要在服务器端(此处为Rails)执行此类验证。

您所要求的验证非常简单。
我建议您使用javascript、jquery或您选择的任何其他js框架在浏览器的客户端实现它们

如果您在Rails中的服务器端进行验证,您仍然需要将textfield元素与一些与之关联的javascript事件绑定起来。

因此,如果您想要如此高级别的UI,请不要在服务器端(此处为Rails)执行此类验证。

这里有一个解决方案,它实现服务器端验证,并在验证失败时显示“flash”错误消息

在您的文章模型中:

class Article < ActiveRecord::Base
  ...
  validates_length_of :note, :maximum => 1000
  ...
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 %>

//可以将其移动到模板中
禁止保存此记录:
//更多表单字段
这是一个实现服务器端验证的解决方案,当验证失败时,它将显示一条“flash”错误消息

在您的文章模型中:

class Article < ActiveRecord::Base
  ...
  validates_length_of :note, :maximum => 1000
  ...
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 %>

//可以将其移动到模板中
禁止保存此记录:
//更多表单字段
您必须在javascript中执行此操作,因为您需要的是客户端功能。您还应该进行模型验证,以确保保持这一限制(只需使用curl之类的工具发送帖子,就可以轻松绕过javascript验证)


用谷歌搜索“javascript字符计数器”会得到很多结果。

你必须用javascript来完成这项工作,因为你需要的是客户端功能。您还应该进行模型验证,以确保保持这一限制(只需使用curl之类的工具发送帖子,就可以轻松绕过javascript验证)


通过谷歌搜索“javascript字符计数器”可以得到很多结果。

通过jQuery插件在这里找到了一个很好的“跨浏览器”解决方案,它可以完成这项工作,并“阻止”用户在客户端提交超过分配数量的文章。所需的Rails插件是

通过jQuery插件在这里找到了一个很好的“跨浏览器”解决方案,它将完成这项工作,并“阻止”用户在客户端提交超过分配数量的文章。所需的Rails插件是

谢谢,但从用户体验来看,保留字符太麻烦了。数一数他们的脑袋!谢谢,但从用户体验来看,保留字符太麻烦了。数一数他们的脑袋!就UI元素达成一致。你知道这里有没有宝石吗?我敢肯定这是个好主意。计数功能现在很常见@我猜你不太明白我的答案。为什么这么小的东西需要一个gem呢?其次,gem是用Ruby构建的,所以验证将在服务器端进行,而不是像我建议的那样在客户端浏览器中进行。我之所以想使用gem,是因为我想阻止db在“提交”时接受长度超过500个字符的文章(所以可能是一条flash消息)不需要清除表单,也可以给用户一个视觉上的美学倒计时……@ubique:所有这些都非常简单,可以用javscript完成。如果你有问题,在如何继续的问题上,谷歌搜索它,你可能会发现关于UI元素很容易。你知道这里有没有宝石吗?我敢肯定这是个好主意。计数功能现在很常见@我猜你不太明白我的答案。为什么这么小的东西需要一个gem呢?其次,gem是用Ruby构建的,所以验证将在服务器端进行,而不是像我建议的那样在客户端浏览器中进行。我之所以想使用gem,是因为我想阻止db在“提交”时接受长度超过500个字符的文章(所以可能是一条flash消息)不需要清除表单,也可以给用户一个视觉上的美学倒计时……@ubique:所有这些都非常简单,可以用javscript完成。如果你有问题,如何继续,谷歌搜索,你可能会很容易找到它