Не удалось найти действие new_status для TasksController - PullRequest
0 голосов
/ 17 января 2019

Мне нужна помощь по этому вопросу. У меня есть контроллер задач с

RESTful action и

private

def new_status
  @tasks.update!(active: params[:active])
  flash[:notice] = "Status update"
  redirect_to action: "index"
end

Есть маршруты

resources :tasks do
    get :new_status, on: :member
  end

Но я не могу изменить значение, активное в базе данных по этой ссылке

 <%=link_to "send data", new_status_task_path(task.id, :active => false) %>

In * .html.erb

<% @tasks.where(active: true).order(:priority).each do |task| %>
          <li class="task">
            <%= link_to task.title, task, class: "task-title text-dark" %>
            <span class="task-btn">
                <%=link_to "send data", new_status_task_path(task.id, :active => false) %>
                <%= link_to '', '', class: "fas fa-bell text-dark icon" %>
                <%= link_to '', edit_task_path(task), class:"fas fa-cogs text-dark mx-2 icon" %>
                <%= link_to '', task, method: :delete, data: { confirm: 'Are you sure?' }, class:"far fa-trash-alt text-dark icon" %>
            </span>
          </li>
      <% end %>

1 Ответ

0 голосов
/ 17 января 2019

Действия контроллера должны быть публичными. Переместите определение new_status перед объявлением private.

def new_status
  @tasks.update!(active: params[:active])
  flash[:notice] = "Status update"
  redirect_to action: "index"
end

private

# rest of the controller
...