Ruby on rails 不能';找不到带有';id'=编辑

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

当我试图编辑我的展示页面时,我收到此错误消息(找不到id=edit的公文包)

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
a
resource
?请发布您相应的路线,看起来这里有
resources
,而不是我在帖子中添加的
resource
。我是新的编码员,所以我想这就是你想要的?为什么这是在-1。。。?提问者说他们是新的,并且提供了尽可能多的信息?哇。谢谢你,伙计。哦,好吧,如果不告诉它我想编辑哪个id(项目),它不会显示任何内容。10-4
ActiveRecord::RecordNotFound in PortfoliosController#show Couldn't find Portfolio with 'id'=edit