Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更新用户集合_Ruby On Rails_Arrays_Ruby_Crud - Fatal编程技术网

Ruby on rails 更新用户集合

Ruby on rails 更新用户集合,ruby-on-rails,arrays,ruby,crud,Ruby On Rails,Arrays,Ruby,Crud,在我的应用程序中,我要求通过一个提交按钮同时更新一组用户。但是在我的控制台中,每当我按submit时,我都会收到错误 不允许的参数:1,3,4,2 不允许的参数:1、3、4、2 不允许的参数:1、3、4、2 不允许的参数:1、3、4、2 不允许的参数:1、3、4、2 Update_集合看起来是这样的: 参数:{“utf8”=>“✓", "真实性令牌“=>”GWT/QI3w/uqcsTAy58iPRfb4UqVNn5+CEXQUKX72UJ9W3T0CRKKKOVDC4ZVVS7UH88JTQ7A

在我的应用程序中,我要求通过一个提交按钮同时更新一组用户。但是在我的控制台中,每当我按submit时,我都会收到错误

不允许的参数:1,3,4,2
不允许的参数:1、3、4、2
不允许的参数:1、3、4、2
不允许的参数:1、3、4、2
不允许的参数:1、3、4、2

Update_集合看起来是这样的:

参数:{“utf8”=>“✓", "真实性令牌“=>”GWT/QI3w/uqcsTAy58iPRfb4UqVNn5+CEXQUKX72UJ9W3T0CRKKKOVDC4ZVVS7UH88JTQ7AWENORT/qww37eQ==”,“用户”=>{“用户名”=>“鲍勃”,“星期日”=>“8”,“星期一”=>“7”,“星期二”=>“09”,“星期三”=>“986”,“星期四”=>“765”,“星期五”=>“321”,“星期六”=>“432”,“3”=>“用户名”=>“星期日”、“星期二”=>“星期一”、“迈克”=>“星期二”=>“星期一”=>“星期一”,“星期三”=>“243”,“星期四”=>“986”,“星期五”=>“7536”,“星期六”=>“07”},“4”=>{“用户名”=>“乔治”,“星期日”=>,“星期一”=>,“星期二”=>,“星期三”=>,“星期五”=>,“星期六”=>,“管理员”,“星期日”=>,“星期一”=>,“星期二”、“星期三”=>,“星期四”、“星期五”=>,“星期六”提交“=>”提交“}

我假设在它声明的地方,
“user”=>{“1”=>{etc..}
是我的问题的根源,但是考虑到这些是动态哈希,我不知道如何允许它们,即使在允许它们之后,我也不希望它们被更新,因为它们不属于单独的用户模型,而只属于数组本身

用户\u controller.rb

class UsersController < ApplicationController
#  before_filter :authenticate_user! 
  before_action :set_user, only: [:show, :edit, :update, :destroy]

  # GET /users
  # GET /users.json
  def index
    @users = User.all
  end

  # GET /users/1
  # GET /users/1.json
  def show
  end

  # GET /users/new
  def new
    @user = User.new
  end

  def update_collection
    @users = User.all
    @users.each do |user|
      if collect_params[:password].blank?
        collect_params.delete(:password)
        collect_params.delete(:password_confirmation)
      end

      successfully_updated = if needs_password?(user, collect_params)
                             user.update(collect_params)
                           else
                             user.update_without_password(collect_params)
                           end

      #respond_to do |format|
        #if user.update(collect_params)
          #format.html { redirect_to user, notice: 'User was successfully updated.' }
          #format.json { render :show, status: :ok, location: user }
       # else
          #format.html { render :edit }
         # format.json { render json: user.errors, status: :unprocessable_entity }
        #end
      #end
    end
  end

  # GET /users/1/edit
  def edit
  end

  # POST /users
  # POST /users.json
  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 :show, status: :created, location: @user }
      else
        format.html { render :new }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /users/1
  # PATCH/PUT /users/1.json
  def update
    if user_params[:password].blank?
      user_params.delete(:password)
      user_params.delete(:password_confirmation)
    end

    successfully_updated = if needs_password?(@user, user_params)
                           @user.update(user_params)
                         else
                           @user.update_without_password(user_params)
                         end
    respond_to do |format|
      if @user.update(user_params)
        format.html { redirect_to @user, notice: 'User was successfully updated.' }
        format.json { render :show, status: :ok, location: @user }
      else
        format.html { render :edit }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

  protected

    def needs_password?(user, params)
      params[:password].present?
    end

  # DELETE /users/1
  # DELETE /users/1.json
  def destroy
    @user.destroy
    respond_to do |format|
      format.html { redirect_to users_url, notice: 'User was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_user
      @user = User.find(params[:id])
    end

    def collect_params
      params.require(:user).permit(:role_id, :username, :password, :password_confirmation, :monday, :tuesday, :wednesday, :thursday, :friday, :saturday, :sunday)
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def user_params
      params.require(:user).permit(:role_id, :username, :password, :password_confirmation, :monday, :tuesday, :wednesday, :thursday, :friday, :saturday, :sunday)
    end



end
class UsersController
我的表格代码:

<%= form_tag update_collection_users_path, method: :put do |form| %>
  <% @users.each do |user| %>
    <%= fields_for "user[]", user do |f| %>
      <% if @user.errors.any? %>
        <div id="error_explanation">
          <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
          <ul>
          <% @user.errors.full_messages.each do |message| %>
            <li><%= message %></li>
          <% end %>
          </ul>
        </div>
      <% end %>
      <div class="field">
        <%= f.label :username %><br>
        <%= f.text_field :username %>
      </div>
      <div class="field">
        <%= f.label :sunday %><br>
        <%= f.text_field :sunday %>
      </div>
      <div class="field">
        <%= f.label :monday %><br>
        <%= f.text_field :monday %>
      </div>
      <div class="field">
        <%= f.label :tuesday %><br>
        <%= f.text_field :tuesday %>
      </div>
      <div class="field">
        <%= f.label :wednesday %><br>
        <%= f.text_field :wednesday %>
      </div>
      <div class="field">
        <%= f.label :thursday %><br>
        <%= f.text_field :thursday %>
      </div>
      <div class="field">
        <%= f.label :friday %><br>
        <%= f.text_field :friday %>
      </div>
      <div class="field">
        <%= f.label :saturday %><br>
        <%= f.text_field :saturday %>
      </div>
      <div class="actions">
        <%= f.submit %>
      </div>
    <% end %>
  <% end %>
  <%= submit_tag "Submit" %>
<% end %>

禁止保存此用户:









您可以共享您的表单代码吗?使用表单更新了代码将此行从更改为和用户ID以允许或粘贴日志结果即使在允许用户ID后,我仍然会收到日志错误
未允许参数:用户ID未允许参数:用户ID未允许参数:用户ID未允许参数:用户ID未允许参数:用户ID未允许参数允许的用户ID?如下:
def user\u params.require(:user.pe)