我從一頁到另一頁傳遞ransack params。最初params看起來像哈希值
{" processed_at_gteq_datetime"=>"2021-08-01", " processed_at_lteq_datetime"=> "2021-09-14", "status_eq"=>" processed"}。
但是在把這個params發送到另一個頁面后,它就變成了一個字串,并采取了以下型別:
"{"processed_at_gteq_datetime"=>"2021-08-01", "processed_at_lteq_datetime"=>"2021-09-14", "status_eq"=>"processed"}"
而在這個表格中,我不能用它們來搜索。
我如何轉換這個字串:
"{"processed_at_gteq_datetime"=>"2021-08-01", "processed_at_lteq_datetime"=>"2021-09-14", "status_eq"=>"processed"}"
到哈希?
我試過
JSON.parse my_params
但它對這個字串不起作用
JSON::ParserError Exception: 767: unexpected token at '{" processed_at_gteq_datetime"=> "2021-08-01", "processed_at_lteq_datetime"=> "2021-09-14", "status_eq"=>" processed"}'
uj5u.com熱心網友回復:
我猜你正在使用鏈接或重定向將引數從一個頁面傳遞到另一個頁面。
如果你想保留這些引數,你必須把它們傳遞給路徑助手:
如果你想保留這些引數,你必須把它們傳遞給路徑助手。
link_to other_page_path(ransack_hash)
# => /other_page?processed_at_gteq_datetime=2021-08-01& processed_at_lteq_datetime=2021-09-14& status_eq=processed
和類似的結構。這個
link_to other_page_path(q: ransack_hash)
# => /other_page?q[processed_at_gteq_datetime]=2021-08-01&q[processed_at_lteq_datetime]=2021-09-14& q[status_eq]=processed
將嵌套引數,這樣你就可以在其他控制器中用
檢索了。ransack_params = params[:q]
uj5u.com熱心網友回復:
這不起作用的原因是:
JSON.parse("{"foo"=> "bar"}"/span>)
這是因為它不是有效的JSON。對于有效的JSON,你需要將ruby的=>運算子替換成javascript的:運算子。你可以用Ruby的字串操作來完成這個任務。
string = "{"foo"=> "bar"}"
json = string.gsub(/=>/,' :')
JSON.parse(json)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322774.html
標籤:
