我只需要一个自动更新值的link_to链接.我做了以下事情:
1)将我想要更新的字段添加到post_controller许可列表中:
#post_controller.rb
def post_params
params.require(:post).permit(:title, :description, :file, :user_id, :category_id, :revisor_id, :visible)
end
Run Code Online (Sandbox Code Playgroud)
2)在视图中添加了link_to链接:
<td><%= link_to 'Publish', post_path(post, visible: true), method: :put %></td>
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
#routes.rb
resources :posts do
get 'revisions', on: :collection
end
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
param is missing or the value is empty: post
Run Code Online (Sandbox Code Playgroud)
这是控制器:
#posts_controller.rb
class PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
# GET /posts
# GET /posts.json
def index
@posts = Post.all
end
def revisions
@posts = Post.where(revisor_id: current_user.id)
end
# GET /posts/1
# GET …Run Code Online (Sandbox Code Playgroud)