Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 Rails 4用于更新用户属性的简单管理_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails 4用于更新用户属性的简单管理

Ruby on rails Rails 4用于更新用户属性的简单管理,ruby-on-rails,ruby,Ruby On Rails,Ruby,很难让我的简单管理界面正常工作,希望你们能帮我睁开眼睛。我猜我的@client变量并没有完全按照我所希望的那样工作。它会在我的“生成”页面上显示已“支付”的客户,但当我填写表单并提交时,数据库不会更新 class UsersController < ApplicationController before_action :signed_in_user, only: [:index, :edit, :update, :destroy, :generate]

很难让我的简单管理界面正常工作,希望你们能帮我睁开眼睛。我猜我的@client变量并没有完全按照我所希望的那样工作。它会在我的“生成”页面上显示已“支付”的客户,但当我填写表单并提交时,数据库不会更新

class UsersController < ApplicationController
  before_action :signed_in_user,
                only: [:index, :edit, :update, :destroy, :generate]
  before_action :correct_user,   only: [:edit, :update]
  before_action :admin_user,     only: [:destroy, :generate, :update]
  before_filter :setup_negative_captcha, :only => [:new, :create]


此行@client=User.find_by!paid:“true”返回对象列表,而不是一个。因此,如果@client.update\u attributes,那么下一行将不适用于您!用户参数。要解决这个问题,您必须为@client分配一个对象,而不是像:@client=User.findparams[:id]这样的对象列表,然后在下一行中更改为:if@client.paid?&&@client.update\u属性!用户参数

可以显示您的日志吗?只是更新查询部分。轰!谢谢。我进一步查看了日志,意识到我忘了允许参数。谢谢,我不会再犯同样愚蠢的错误了。酷,你可能想发布你的答案并接受它。忘了允许参数!
def generate
   @client = User.find_by! paid: 'true'
   if @client.update_attributes!(user_params)
    @client.comment = nil
    @client.paid = nil
    render 'generate'
   else
    flash[:error] = "Client not Saved"
    render 'generate'
  end
  end
 def correct_user
      @user = User.find(params[:id]) or User.find_by! admin: 'true'
    end
<% if current_user.admin?  %>
<%= form_for(@client) do |f| %>
<%= f.text_area :hours1, value: "", rows:1 %><%= f.text_area :hours1_percent, value: "", rows:1 %><br>
<%= f.text_area :hours2, value: "", rows:1 %><%= f.text_area :hours2_percent, value: "", rows:1 %><br>
<%= f.submit " Generate Schedule" ,  class: 'btn-small btn-primary' %> 
<% end %>
<% else %>
<%= link_to "Signin", signin_path %>
<% end %>