【问题标题】:Passing array into hidden_field_tag converted to string将数组传递到 hidden_​​field_tag 转换为字符串
【发布时间】:2019-04-11 11:17:43
【问题描述】:

我试图在表单中的 hidden_​​field_tag 中传递一个哈希数组,但我得到的是一个字符串。中间件或服务器或介于两者之间的东西正在将散列更改为字符串。在被发送到控制器之前,数组在分配给字段之前已经变成了字符串。

  = hidden_field_tag :cities, @cities
  = hidden_field_tag :longitude, params[:longitude]
  = hidden_field_tag :address, params[:address]
  = hidden_field_tag :category, params[:category]
  = hidden_field_tag :city, @city
  = hidden_field_tag :state, @state
  = hidden_field_tag :category, @category
  = hidden_field_tag :user_id, @user.id

【问题讨论】:

    标签: ruby-on-rails slim hidden-field


    【解决方案1】:

    在我的一位资深同事的帮助下,我设法通过以下方式解决了这个问题:

    1. 在 html/slim 文件中:
         = hidden_field_tag :cities, @cities.map {|city| city.as_json}.to_json
    
    1. 在控制器中设置:
         cities = params[:cities].is_a?(String) ? JSON.parse(params[:cities]) : params[:cities]
         cities.map { |city| city.with_indifferent_access }
    

    如果这种方法正确,我仍在寻找建议,并且非常想知道是否有更好的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 2011-01-31
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 2020-05-30
      相关资源
      最近更新 更多