У меня есть check_box_tag для формы, которая обновляет атрибут профиля пользователя :show_hometown
.Когда я отправляю форму для переключения значения :show_hometown
, значение флажка ввода равно «1» независимо от изменения атрибута.Может кто-нибудь помочь мне понять, что я делаю неправильно?
Вот моя форма:
<%= form_tag({:action => "edit_show_hometown_settings", :controller => "profiles"}, :html => {:multipart => true }) do %>
<%= check_box_tag :show_hometown, 0, 1 %>
<%= @user.profile.hometown %>
<% end %>
Вот действие в контроллере, откуда я обновляю атрибут:
def edit_show_hometown_settings
@profile = current_user.profile
if @profile.show_hometown == true
if @profile.update_attributes(:show_hometown => false)
redirect_to settings_path
else
redirect_to settings_path, :notice => 'Oops, something went wrong. Please try again.'
end
elsif @profile.show_hometown == false
if @profile.update_attributes(:show_hometown => true)
redirect_to settings_path
else
redirect_to settings_path, :notice => 'Oops, something went wrong. Please try again.'
end
end
end
И, наконец, миграция, которую я использовал для создания атрибута :show_hometown
:
t.boolean :show_hometown, :default => true