ActionController :: RoutingError (Нет подходящих маршрутов [POST] - PullRequest
1 голос
/ 20 сентября 2019

Я настраиваю некоторую маршрутизацию, чтобы сделать AJAX-запрос на мое действие create в контроллере reviews.Я включил правильный URL-адрес рельсов в форму с объектами 'user' и 'movie'.Когда я нажимаю кнопку «Создать», появляется ошибка ActionController::RoutingError (No route matches [POST] "/users/7/movies/12").

<div class="panel panel-default">
    <div class="panel-heading">Write Review</div>
        <div class="panel-body">
            <%= simple_form_for user_movie_create_review_path(@movie.user, @movie), remote: true do |f| %>
                <%= f.input :text, as: :text, input_html: {rows: 5, class: 'simple_form_review'}%>
                <%= f.button :submit, "Submit Review", class: 'btn btn-primary' %>
            <% end %>
        </div>
    </div>  
</div>

resources :users do
    resources :movies do 
        post 'create_review', to: 'reviews#create'
    end
end

class Review < ApplicationRecord
    belongs_to :user
    belongs_to :movie

    validates :content, presence: true
end

маршруты рейка:

user_movie_create_review POST /users/:user_id/movies/:movie_id/create_review(.:format) reviews#create

запрос:

Started POST "/users/7/movies/12" for ::1 at 2019-09-20 19:15:53 +0200

1 Ответ

1 голос
/ 20 сентября 2019

Вам необходимо передать объект обзора на simple_form_for:

<%= simple_form_for @review, url: user_movie_create_review_path(@movie.user, @movie), remote: true do |f| %>
  ..
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...