ruby-on-rails - Rails 4 整数字段返回字符串

标签 ruby-on-rails forms validation types integer

当我在 number_field 中输入内容时并将表单发布到 Controller ,Rails 无法保存,因为我有一个数字验证:

validates :rating, numericality: { greater_than: 0, less_than: 6 }

我通过这段代码调试了 Controller :
raise "It exploded into pieces!" unless @comment.save

我用于调试的异常表示我的 :rating是一个字符串而不是一个整数。在此之前,我为 @comment 渲染了 json 错误那就是说 :rating不是一个数字。

这些对于发现问题非常有用,但我找不到解决问题的任何解决方案。我检查了数据库架构,它说 :rating应该是一个整数,如:
 t.integer  "rating"

我不知道此时该怎么办。有人可以帮助我吗?先感谢您。

附言我用 number_field .

P.P.S.
在我的 Controller 中:
def ccreate
  @comment = Comment.new(params.permit(:rating, :body, :name, :game_id))
  raise "It exploded into pieces!" unless @comment.save
end

在我看来:
<% if @comments.count < 10 %>
    <%= form_for(comment_path) do |f| %>
      <div class="field">
        <%= f.label :rating %><br>
        <%= f.number_field :rating %>
      </div>
      <div class="field">
        <%= f.label :body %><br>
        <%= f.text_area :body %>
      </div>
      <div class="field">
        <%= f.label :name %><br>
        <%= f.text_field :name %>
      </div>
      <div class="actions">
        <%= f.submit %>
      </div>
    <% end %>
<% end %>

最佳答案

这是一个强大的参数。允许:评论,然后是属性

params.require(:comments).permit(:rating, :body, :name, :game_id)

并且,使用 form_for @comment,而不是 comment_path

关于ruby-on-rails - Rails 4 整数字段返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30890047/

相关文章:

ruby-on-rails - 在 Rails 中清理 Markdown?

ruby-on-rails - Rails Redis过期方法

jQuery:表单序列化、隐藏字段和不显示字段

ruby-on-rails - 使用 Nokogiri 将 XML 提要解析为 Ruby 对象?

ruby-on-rails - Rails,创建树状结构。 JSON输出

php - 如果提交另一个表单,为什么 php 在一个表单中输入空白值或重复值

html - 将从 MySQL 获取用户的数据列表转换为组合框

json - 如何递归验证 JSON 模式?

php - preg_match() 期望参数 2 为字符串,在 CakePHP 中给出错误的对象

javascript - JQuery 验证禁用按钮,直到所有字段都处于事件状态,但每次按键时不应显示错误