Ruby on rails 不能';找不到带有';id'=编辑
当我试图编辑我的展示页面时,我收到此错误消息(找不到id=edit的公文包)Ruby on rails 不能';找不到带有';id'=编辑,ruby-on-rails,Ruby On Rails,当我试图编辑我的展示页面时,我收到此错误消息(找不到id=edit的公文包) def set_portfolio_item @portfolio_item = Portfolio.find(params[:id]) end 我试着把edit放在那里来编辑id,但仍然不起作用 class PortfoliosController < ApplicationController skip_before_action :verify_authenticity_token befor
def set_portfolio_item
@portfolio_item = Portfolio.find(params[:id])
end
我试着把edit放在那里来编辑id,但仍然不起作用
class PortfoliosController < ApplicationController
skip_before_action :verify_authenticity_token
before_action :set_portfolio_item, only: [:edit, :show, :update, :destroy]
layout 'portfolios'
access all: [:show, :index, :angular], user: {except: [:destroy, :new, :create, :update, :edit, :sort]},site_admin: :all
def index
@portfolio_items = Portfolio.by_position
@page_title = "Portfolios"
end
def sort
params[:order].each do |key, value|
Portfolio.find(value[:id]).update(position: value[:position])
end
render json: { status: "updated" }
end
def new
@portfolio_item = Portfolio.new
3.times { @portfolio_item.technologies.build }
end
def create
@portfolio_item = Portfolio.new(portfolio_params)
respond_to do |format|
if @portfolio_item.save
format.html { redirect_to portfolios_path, notice: 'Your portfolio item is now live.'}
else
format.html { render :new }
end
end
end
def edit
end
def update
respond_to do |format|
if @portfolio_item.update(portfolio_params)
format.html { redirect_to portfolios_path, notice: 'The record successfully updated.' }
else
format.html { render :edit }
end
end
end
def show
end
def destroy
#this going to perform the look up
# Destroy/delete the record
@portfolio_item.destroy
# Redirect
respond_to do |format|
format.html { redirect_to portfolios_url, notice: 'Post was removed.' }
end
end
private
def portfolio_params
params.require(:portfolio).permit(
:title,
:subtitle,
:body,
:main_image,
:thumb_image,
technologies_attributes: [:name]
)
end
def set_portfolio_item
@portfolio_item = Portfolio.find(params[:id])
end
end
这是我的编辑路线
edit_user_password GET /password/edit(.:format) devise/passwords#edit
edit_user_registration GET /edit(.:format) devise/registrations#edit
edit_portfolio GET /portfolios/:id/edit(.:format) portfolios#edit
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
当我点击时,我可以看到错误消息
ActiveRecord::RecordNotFound in PortfoliosController#show Couldn't find Portfolio with 'id'=edit
如果要编辑公文包,必须提供id,如下所示。您当前的URL只能解释为公文包显示,“编辑”是路由的
:id
部分。似乎是路由问题。你的路线是什么样的?portfolions
aresource
?请发布您相应的路线,看起来这里有resources
,而不是我在帖子中添加的resource
。我是新的编码员,所以我想这就是你想要的?为什么这是在-1。。。?提问者说他们是新的,并且提供了尽可能多的信息?哇。谢谢你,伙计。哦,好吧,如果不告诉它我想编辑哪个id(项目),它不会显示任何内容。10-4
ActiveRecord::RecordNotFound in PortfoliosController#show Couldn't find Portfolio with 'id'=edit