gpt4 book ai didi

ruby-on-rails - 不允许的参数尽管白名单属性 rails 4

转载 作者:数据小太阳 更新时间:2023-10-29 08:35:59 25 4
gpt4 key购买 nike

我有一个属性 :completed,它是一个 bool 值 (true/false)。在索引页上,我有一个复选框,选中后,我想更新该对象的值。这是我的复选框:

<div class="task_area">
<%= link_to task.title, task_path(task), class: 'wrapper_task_name'%>
<%= form_for task do |f| %>
<%= f.check_box :completed %>
<%= f.submit 'update' %>
<% end %>
</div>

我在我的 tasks_controller.rb 中将属性 :completed 列入了白名单:

def task_params
params.require(:task).permit(:title, :text, :boolean, :current_user, :email, )
end

但是在日志中我得到:

Started PATCH "/tasks/45" for ::1 at 2016-10-16 17:35:43 -0400
Processing by TasksController#update as HTML
Parameters: {"utf8"=>"���", "authenticity_token"=>"ogAki1fvq6Eq+ONwjxeYwf+ZOrmkv+EAuDmZRTEEJ05xB3cf/XyHEavNDZyBWUOL0gUuEOglyM2uDNoJHcDcJg==", "task"=>{"completed"=>"1"}, "commit"=>"update", "id"=>"45"}
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
Task Load (0.7ms) SELECT "tasks".* FROM "tasks" WHERE "tasks"."user_id" = $1 AND "tasks"."id" = $2 LIMIT 1 [["user_id", "1"], ["id", 45]]
Unpermitted parameter: completed
(0.4ms) BEGIN
(0.4ms) COMMIT
Redirected to http://localhost:3000/
Completed 302 Found in 22ms (ActiveRecord: 2.3ms)

我想知道是否设计需要用户身份验证会导致此问题。有谁知道我可以做些什么来解决这个问题?

最佳答案

该字段的名称是 :completed 而不是 :boolean - 这是您需要在许可行中输入的内容。例如:

def task_params
params.require(:task).permit(:title, :text, :completed, :current_user, :email)
end

我还可以强烈建议不要将 :current_user 作为允许的字段吗?这将允许恶意用户为另一个用户创建任务。我会将它从允许列表中删除并在创建方法中手动添加它,例如 current_user.tasks.create(task_params)

关于ruby-on-rails - 不允许的参数尽管白名单属性 rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com