У меня точно такой же вопрос Сериализация ActiveRecord не работает должным образом с Hash столбец, но в моем случае я трижды проверил и не могу найти никаких опечаток, это копирование/вставка:
app/models/organization.rb
:
class Organization < ApplicationRecord
...
serialize :activities, Array
end
app/views/organizations/_form.html.erb
: Здесь работает нормально, посмотрите на метод .include?
.
<div class="field">
<%= o.label :activities %>
<% TextsHelper::ACTIVITIES.each_with_index do |activity, i| %>
<%= label_tag "organization_activities_#{i}" do %>
<%= check_box_tag 'organization[activities][]', activity, organization.activities.include?(activity), id: "organization_activities_#{i}" %>
<%= activity %>
<% end %>
<% end %>
</div>
app/views/organizations/show.html.erb
: Здесь это НЕ работает, и я действительно не знаю, где продолжать искать.
<h1><%= @organization.name %></h1>
<p>
<%= t('status.created_at') %>:
<%= @organization.created_at %><br>
<%= t('status.updated_at') %>:
<%= @organization.updated_at %>
</p>
<p>
<%= Organization.human_attribute_name(:activities) %>:
<% @organization.activities.each do |activity| %>
<%= activity %>
<% end %>
</p>
Это ошибка в браузере:
Showing /usr/src/app/app/views/organizations/show.html.erb where line #19 raised:
undefined method `each' for #<String:0x007efe68889ab0>
Это через rails console
:
> o = Organization.last
=> #<Organization id: 58 ...>
> o.activities
=> "[\"Fútbol\", \"Fútbol de salón\", \"Baloncesto\", \"Taekwondo\"]"
> o.activities.class
=> String
--- - Fútbol - Fútbol de salón - Patinaje - Baloncesto
- person unmultimedio   schedule 27.11.2016o.activities_before_type_cast
? - person Vikrant Chaudhary   schedule 17.02.2017