Rails 4.0.1 form.select禁止表单执行

时间:2013-12-07 21:20:00

标签: ruby-on-rails ruby forms http select

<%= f.label :level %><br />
<%= f.select :level, options_for_select([["User", 1], ["Administrator", 2]]) %>

我有给定的选择下拉菜单,表单返回302 Found响应,但没有它,表单会更新。如果我尝试创建新记录,那么它就会被创建,但字段level是空白的。由于我使用scaffold生成并仅更新了从textselect的输入类型,因此看起来很奇怪。可能导致这种情况的原因以及如何解决?

控制器:

  def create
    @user = User.new(user_params)

    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render action: 'show', status: :created, location: @user }
      else
        format.html { render action: 'new' }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

形式:

<%= form_for(@user) do |f| %>
  <div class="field">
    <%= f.label :name %><br>
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :surname %><br>
    <%= f.text_field :surname %>
  </div>
  <div class="field">
    <%= f.label :level %><br />
    <%= f.select :level, options_for_select([["User", 1], ["Administrator", 2]]) %>
  </div>
  <div class="field">
    <%= f.label :password %><br>
    <%= f.password_field :password %>
  </div>
  <div class="field">
    <%= f.label :password_confirmation %><br>
    <%= f.password_field :password_confirmation %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

1 个答案:

答案 0 :(得分:0)

嗯......看起来您的用户已成功保存,但您设置的level未被保留。也许在模型层面发生了什么?我们可以看到您的User型号吗?