Ruby on rails 不能';t在Rails模型中保存当前时间

Ruby on rails 不能';t在Rails模型中保存当前时间,ruby-on-rails,Ruby On Rails,无论何时选中禁用选项,我都试图节省将配置文件更新转换为整数的时间,但无论何时查看数据库字段,禁用时间都为零 其他所有内容都已正确保存 更新:以下是供用户使用的模式和模型 模式 create_table "users", force: :cascade do |t| t.string "username" t.string "email" t.string "password_digest" t.datetime "created_at",

无论何时选中禁用选项,我都试图节省将配置文件更新转换为整数的时间,但无论何时查看数据库字段,禁用时间都为零

其他所有内容都已正确保存

更新:以下是供用户使用的模式和模型

模式

  create_table "users", force: :cascade do |t|
    t.string   "username"
    t.string   "email"
    t.string   "password_digest"
    t.datetime "created_at",         null: false
    t.datetime "updated_at",         null: false
    t.string   "location"
    t.date     "birthdate"
    t.string   "rank"
    t.boolean  "banned"
    t.text     "bandesc"
    t.boolean  "vip"
    t.integer  "ban_time"
    t.integer  "ban_remaining_days"
    t.integer  "bug_report_time"
  end
型号

class User < ApplicationRecord

    has_secure_password

    validates :username, presence: true, uniqueness: true, format: { with: /\A[a-zA-Z0-9]+\Z/},
                            length: { maximum: 10, minimum: 4 }
    validates :email, presence: true, uniqueness: true, length: { maximum: 50 }
    validates :password, presence: true, length: { maximum: 50, minimum: 4 }, if: :should_validate_pass?
    validates :password_confirmation, presence: true, if: :should_validate_conf?
    validates :location, presence: true, length: { maximum: 30 }
    validates :banned, presence: true, if: :ban_remaining_days?
    validates :ban_remaining_days, presence: true, numericality: { only_integer: true }, inclusion: { in: 1..365 }, if: :banned?
    validates :bandesc, presence: true, length: { maximum: 200, minimum: 20 }, if: :banned?

    def should_validate_pass?
        new_record? || password.present?
    end

    def should_validate_conf?
        new_record? || password_confirmation.present?
    end

end
class用户
表格

<%= form_for @user do |f| %>
    <% if @user.errors.any? %>
        <div class="alert alert-danger">
            <ul>
                <% @user.errors.full_messages.each do |m| %>
                    <li><%= m %></li>
                <% end %>
            </ul>
        </div>
    <% end %>

    <div class="field">
        <%= f.label "Korisničko ime:" %>
        <%= f.text_field :username, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Lokacija:" %>
        <%= f.text_field :location, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Datum rođenja:" %><br/>
        <%= f.date_select :birthdate, order: [:day, :month, :year], start_year: 1900, end_year: Time.now.year - 18 %>
    </div>

    <div class="field">
        <%= f.label "E-mail:" %>
        <%= f.text_field :email, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Lozinka:" %>
        <%= f.password_field :password, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Potvrda lozinke:" %>
        <%= f.password_field :password_confirmation, class: "form-control" %>
    </div>

        <h3>Administratorska podešavanja</h3>

        <div class="field">
            <%= f.label "Rank:" %>
            <%= f.text_field :rank, class: "form-control" %>
        </div>

        <div class="field">
            <%= f.label "VIP:" %>
            <%= f.check_box :vip %>
        </div>

        <div class="field">
            <%= f.label "Banovanje člana:" %>
            <%= f.check_box :banned %>
        </div>

        <div class="field">
            <%= f.label "Razlog:" %>
            <%= f.text_area :bandesc, class: "form-control" %>
        </div>

        <div class="field">
            <%= f.label "Vremenski period (dana):" %>
            <%= f.text_field :ban_remaining_days, class: "form-control" %>
        </div>

    <div class="submit">
        <%= f.submit button_text, class: "btn btn-primary" %>
    </div>

<% end %>


管理者卡·波德萨瓦尼亚
进入

进入


您能为用户显示模型和模式吗?@JohnFeltz问题已更新。谢谢。输入调试点并验证参数哈希是否正确。为什么不使用datetime字段?能否显示定义复选框的视图?很明显,视图->控制器的显示方式与您预期的不同。您能为用户显示模型和模式吗?@JohnFeltz问题已更新。谢谢。输入调试点并验证参数哈希是否正确。为什么不使用datetime字段?能否显示定义复选框的视图?很明显,它不是按您所期望的方式通过view->controller发送的。谢谢!我在这里的一篇文章中看到,未选中的复选框甚至不会被发送(但当我看到请求输出时意识到这是错误的),所以我认为检查nil就可以了。谢谢!我在这里的一篇文章中看到,未选中的复选框甚至不会被发送(但当我看到请求输出时意识到这是错误的),所以我认为检查nil就可以了。
<%= form_for @user do |f| %>
    <% if @user.errors.any? %>
        <div class="alert alert-danger">
            <ul>
                <% @user.errors.full_messages.each do |m| %>
                    <li><%= m %></li>
                <% end %>
            </ul>
        </div>
    <% end %>

    <div class="field">
        <%= f.label "Korisničko ime:" %>
        <%= f.text_field :username, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Lokacija:" %>
        <%= f.text_field :location, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Datum rođenja:" %><br/>
        <%= f.date_select :birthdate, order: [:day, :month, :year], start_year: 1900, end_year: Time.now.year - 18 %>
    </div>

    <div class="field">
        <%= f.label "E-mail:" %>
        <%= f.text_field :email, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Lozinka:" %>
        <%= f.password_field :password, class: "form-control" %>
    </div>

    <div class="field">
        <%= f.label "Potvrda lozinke:" %>
        <%= f.password_field :password_confirmation, class: "form-control" %>
    </div>

        <h3>Administratorska podešavanja</h3>

        <div class="field">
            <%= f.label "Rank:" %>
            <%= f.text_field :rank, class: "form-control" %>
        </div>

        <div class="field">
            <%= f.label "VIP:" %>
            <%= f.check_box :vip %>
        </div>

        <div class="field">
            <%= f.label "Banovanje člana:" %>
            <%= f.check_box :banned %>
        </div>

        <div class="field">
            <%= f.label "Razlog:" %>
            <%= f.text_area :bandesc, class: "form-control" %>
        </div>

        <div class="field">
            <%= f.label "Vremenski period (dana):" %>
            <%= f.text_field :ban_remaining_days, class: "form-control" %>
        </div>

    <div class="submit">
        <%= f.submit button_text, class: "btn btn-primary" %>
    </div>

<% end %>
        <%= f.check_box :banned %>
if !params[:banned].nil?
if user_params[:banned] == '0'