我看了几个类似于这个问题的不同答案,但他们都获得传入params散列的id,它只是回来作为零值。我似乎不能让id被列入白名单,我无法弄清楚为什么。没有路由匹配显示动作 - 缺少必需的键:[:id]
这是我的创建和显示操作,还包括参数。我明确列出了白名单,尽管我不知道是否有必要。
def show
@board = Board.find(params[:id])
end
def create
@board = Board.new(board_params)
if @board.save
# flash[:notice] = 'You successfully created your post!'
redirect_to board_path
else
render 'new'
# flash[:danger] = 'One or more errors occurred when processing your post'
end
end
private
def board_params
# params.require(:board).permit!
params.require(:board).permit(:id, :project_name, :project_description, :postition_title, :project_url, :project_headquarters, :application_process)
end
我的路由的输出显示动作
board GET /boards/:id(.:format) boards#show
而且params哈希表的上板#输出创造
Parameters: {"utf8"=>"✓", "authenticity_token"=>"k+KKRhBk4Dnba1vxtFCanI2grfhNXFSgJpfEBLnhPdablfOsXRi1wBehPpM1qgx1pySrqxVHTeiwkneluXwRIQ==", "board"=>{"project_name"=>"sdf", "postition_title"=>"sdf", "project_headquarters"=>"sdf", "project_url"=>"fsd", "project_description"=>"dfs", "application_process"=>"dfs"}, "commit"=>"Create Board"}
有人能看到什么,我需要更改为了让传入的ID正确?
你不需要到白名单:ID 。当您链接到电路板显示页面时是否存在问题,或者您是否也无法通过手动输入网址去/ board /#? – gwalshington
也 - “重定向到@ board”将带你到显示页面。 – gwalshington
即时无法进行手动操作。此外您的解决方案工作,谢谢,但你知道为什么重定向到board_path不起作用吗? – adamscott