Модель редактирования Rails с другого контроллера - PullRequest
0 голосов
/ 07 июня 2018

У меня есть контроллер статей с соответствующей моделью товара.
У меня также есть другой контроллер под названием Обзоры.

Они не связаны или не связаны.

Я пытаюсь редактировать статьюпосты из отзывов контролера, но не умеют делать.

class ReviewsController < ApplicationController
    def index
        @article = Article.all
    end

    def show
        @article = Article.find(params[:id])
    end


    def edit
        @article = Article.find(params[:id])
    end

    def update
        raise params.inspect
        # @article = Article.find(params[:id])
        # if @article.update_attributes(article_params)
        #   # Handle a successful update.
        # else
        #   render 'edit'
        # end
    end

    private
    def article_params
      params.require(:article).permit(:title, :body, :url,
                                   :tags, :news_date, :status)
    end

end

reviews / edit.html.erb

<div class="row">
  <div class="col-md-6 col-md-offset-3">

    <%= form_tag review_path(@article), method: "put" do %>
      <label>Article title:</label><br>
      <%= text_field_tag :title, @article.title %><br>

      <label>Article Description</label><br>
      <%= text_area_tag :body, @article.body %><br>

      <%= submit_tag "Submit Post" %>
    <% end %>   

  </div>
</div>

При отправке действия почему он отправляет запрос POST, когда я специально задаю для метода формы значение PUT?

enter image description here

rout.rb

resources :reviews, only: [:index, :show, :edit, :update]
scope module: 'api' do
    namespace :v1 do
        resources :articles, only: [:index, :show]
    end
end

>$ bundle exec rake routes
     Prefix Verb  URI Pattern                 Controller#Action
    reviews GET   /reviews(.:format)          reviews#index
edit_review GET   /reviews/:id/edit(.:format) reviews#edit
     review GET   /reviews/:id(.:format)      reviews#show
            PATCH /reviews/:id(.:format)      reviews#update
            PUT   /reviews/:id(.:format)      reviews#update
v1_articles GET   /v1/articles(.:format)      api/v1/articles#index
 v1_article GET   /v1/articles/:id(.:format)  api/v1/articles#show

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете найти ответ здесь: https://apidock.com/rails/ActionView/Helpers/FormTagHelper/form_tag

": method - метод, используемый при отправке формы, обычно либо« get », либо« post ». Если« patch »,« put », «Delete» или другой глагол, добавлен скрытый ввод с именем _method для имитации глагола над сообщением. "

...