我在尝试读取rails数组的内容时遇到问题。 (ruby 2.x,rails 4.x)
我有一个搜索表单,其中一个项目是选择倍数。该数组存储在名为category的文本字段中。我正在使用
获取数组 <%= f.select :category,
options_for_select(@categories.sort),
{:include_blank => true},
{:multiple => true, :size =>10} %>
如果我做了&lt;%= @ search.inspect%&gt;我得到像
这样的东西搜索ID:675,document_title:“”,摘要:“”,所有者:“[\”\“]”,类别: “[\”\“,\”Apples \“,\”Calendar \“,\”Forms \“]”,file_name:“”,created_at: “2015-12-28 13:57:45”,updated_at:“2015-12-28 13:57:45”,doc_to_email:nil
我看到类别字段有一个数组,其中包含我选择的三个项目。
如果我这样做&lt;%= @ search.category%&gt;我明白了
[“”,“苹果”,“日历”,“表格”]
到目前为止,在我看来阵列就在那里。
然而,
<%= @search.category[0..8] %>
结果
[“”,“App
<%= @search.category.first %>
[
<%= @search.category.last %>
这不是我所期待的
<% @search.category.each do |cat_name| %>"
<%= cat_name %>
<% end %>
导致错误
显示 C:/Users/cmendla/RubymineProjects/technical_library/app/views/searches/show.html.erb 第85行引出的地方:
未定义方法`each'代表“[\”\“,\”Apples \“,\”Calendar \“, \“Forms \”]“:String Rails.root: C:/用户/ cmendla / RubymineProjects / TD
应用程序跟踪|框架跟踪|完整追踪 应用程序/视图/搜索/ show.html.erb:85:在 `_app_views_searches_show_html_erb ___ 938985047_80352240'
在尝试读取数组内容时,我做错了什么?
答案 0 :(得分:2)
你的模特&#39; category
是一个字符串,而不是数组。
要在文本字段中存储数组 - 添加
serialize :category, JSON
进入模型。