[英]How can I get and use the id of an object from post_params before saving
[英]Can you delete from post_params in a Rails action?
我正在嘗試從Rails update
操作中的post_params
哈希中delete
,但是delete
調用似乎被忽略了。
puts "before: #{post_params.inspect}"
# output: before {"headline"=>"blah", "tags"=>"foo bar"}
puts "deleted: #{post_params.delete("tags")}"
# output: deleted: foo bar
puts "after: #{post_params.inspect}"
# output: before {"headline"=>"blah", "tags"=>"foo bar"}
# WHY IS "tags" STILL THERE?
我在犯某種基本的菜鳥錯誤嗎? 這讓我發瘋,因為它看起來是如此愚蠢。
我非常確定post_params
是控制器中的一種方法,在該方法中您將模型的屬性列入白名單,並且每次調用該方法都會返回一個新的哈希實例。 這就是為什么tags
仍然存在的原因,因為它並未從實際哈希(即params
中刪除。
您應該從實際哈希(即params
刪除tags
鍵,而不是從post_params
方法調用返回的哈希中刪除。
例如:
如果params = {"post" => {"headline"=>"blah", "tags"=>"foo bar"}}
然后使用params["post"].delete("tags")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.