Ruby on rails Rails 4用于更新用户属性的简单管理
很难让我的简单管理界面正常工作,希望你们能帮我睁开眼睛。我猜我的@client变量并没有完全按照我所希望的那样工作。它会在我的“生成”页面上显示已“支付”的客户,但当我填写表单并提交时,数据库不会更新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]
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 %>