В контроллере перестала работать проверка параметров

Неделю назад все работало, теперь нет никакой реакции на нажатие Up или Down (возможно какие-то обновления теперь мешают). Если в контроллере убрать if и оставить только vote.score += 1 - действительно увеличивает.

#votes_controller.rb:
def update
  post = Post.find(params[:post_id])
  vote = post.vote

  vote.score += 1 if params[:vote][:score] == 'Up'
  vote.score -= 1 if params[:vote][:score] == "Down"
  vote.users << current_user
  vote.save

  flash[:notice] = "You vote counted!"
  redirect_to post_path(post) 
end

#_update.html.erb 
<%= form_for [@post, @post.vote] do |f| %>
  <%= f.label :score, "+"%>
  <%= f.radio_button :score, 'Up' %>
  <%= f.label :score, "-"%>
  <%= f.radio_button :score, "Down" %>  
  <%= f.text_field :score, :size => "2%x5", :readonly => true%>
  <%= f.submit "vote" %>
 <% end %>
<% end %>

При голосовании Processing by VotesController#update в логах не появляется. (даже когда убрать If и голосование работает, в логах идут строчки, которые грузятся при открытии Post после Completed 200 OK): (ActionController::RoutingError (No route matches [GET] "/posts/css/bootstrap.css"):

actionpack (6.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:36:in call' web-console (4.0.1) lib/web_console/middleware.rb:132:incall_app' web-console (4.0.1) lib/web_console/middleware.rb:28:in `block in call' ...)


Ответы (1 шт):

Автор решения: Анастасия Козловская

Решила вместо radio_button использовать кнопки и @Василиса мне помогла реализовать.

В _update:

<%= f.submit :'Up', value: 'Up' %> 
<%= f.submit :'Down', value: 'Down' %> 

В контроллере:

vote.score += 1 if params[:commit] == 'Up' 
vote.score -= 1 if params[:commit] == "Down" 

Все заработало

→ Ссылка