将字符串转换为数组 - Ruby on Rails

时间:2016-09-05 16:46:16

标签: ruby-on-rails ruby

我正在尝试将字符串转换为数组。我正在使用的方法似乎正在工作但是当我用pry检查它仍然是一个字符串。让我告诉你我的方法和输出,看看你能告诉我什么是错的。谢谢。

方法:

  def filters=(filters)
    if filters.is_a?(String)
      filters = filters.split(",")
    end

    list = Set.new

    Array.wrap(filters).each do |filter|
      filter.tr!(",", " ")
      filter.strip!
      list << filter unless filter == ""
    end

    super(list.to_a)
  end

视图

在我放置hey, ohh

的文字字段中
  <%= form_for @integrations, url: url_for(:controller => :integrations, :action => :update, :id => @integrations.id) do |f| %>
   <%= f.label :filters %>
   <%= f.text_field :filters, class: "filter-autocomplete" %>
   <%= f.submit "Save" %>
  <% end %>

控制器

    def update
    @integrations = current_account.integrations.find(params[:id])

    if @integrations.update_attributes(update_params)
      flash[:success] = "Filters added"
      redirect_to account_integrations_path
    else
      render :filters
    end
  end

  def filters
    @integrations = current_account.integrations.find(params[:id])
  end

如果你把一个撬放在它的末尾,它似乎已经转换为一个数组。但当我检查对象时,它仍然是一个字符串。

当我现在在控制台中查看我的过滤器时,它们看起来像这样

"[\"Hey\", \"ohh\"]"

当我希望它看起来像:

["Hey", "ohh"]

0 个答案:

没有答案