ruby-on-rails - 来自不同控制器的 Rails 编辑模型
问题描述
我有一个带有相应文章模型的文章控制器。
我还有一个不同的控制器,称为评论。
它们不相关或不相关。
我正在尝试从评论控制器编辑文章帖子,但无法做到。
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
评论/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
?
路线.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
解决方案
您可以在这里找到答案: https ://apidock.com/rails/ActionView/Helpers/FormTagHelper/form_tag
":method - 提交表单时使用的方法,通常是“get”或“post”。如果使用“patch”、“put”、“delete”或其他动词,则会添加一个名为 _method 的隐藏输入模拟动词 over post。”
推荐阅读
- windows-server-2012 - Windows 2012 位传输
- nsis - 如何在使用 NSIS 从许可协议安装程序屏幕中单击“打印”时显示打印对话框以选择打印选项
- django - 有没有什么想法可以在 django 表单处理中将结束标记(/>)放在 html 的文本输入标记中?
- dart - 如何在 Flutter 中使用 Bloc 正确设置 DropdownButton 的值?
- swift - SpriteKit Particle Emitter - 粒子在创建后是否会受到力的影响
- python - 满足条件时列表中的值总和
- java - 我无法在 Android 8 Oreo(华为)中选择 PDF 文件
- hyperledger-fabric - Hyperledger Fabric - Orderer 日志在广播期间显示错误,即使交易成功并提交给所有对等方
- c++ - Vulkan 中的 YCbCr 采样器
- javascript - angular 6中带有http调用的custome管道不返回值