首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制@idea,出现"No route matches“错误[rails]

复制@idea,出现"No route matches“错误[rails]
EN

Stack Overflow用户
提问于 2014-05-16 05:44:40
回答 1查看 25关注 0票数 0

我正在创建一个应用程序,其中一个用户可以创建和@idea,然后另一个@用户可以‘分叉’@idea。为此,我使用了复制方法ActiveRecord::Core#dup

这就是我想要发生的。@user打开@idea显示页面并单击一个图标,该图标将引导他/她进入一个新的@forked_idea编辑页面,该页面允许用户编辑原始的@idea并将其另存为新的@forked_idea。

这是我的展示页面上的原始@idea的片段。当图标被点击,我希望它路由到一个编辑页面(在或到的想法)

代码语言:javascript
复制
<%= link_to "<i class='fa fa-code-fork fa-5x'></i>".html_safe, idea_forked_idea_path(@idea), method: :get %>

当我单击图标以派生@idea时,出现以下错误:

代码语言:javascript
复制
ActionController::UrlGenerationError - No route matches {:action=>"update", :controller=>"forked_ideas", :format=>nil, :id=>nil, :idea_id=>#<Idea id: 78, 

下面是应用程序/controllers/ideas_Controler.rb

代码语言:javascript
复制
class ForkedIdeasController < ApplicationController

def edit
end

def update
  @idea = Idea.find(params[:id])
  @forked_idea = @idea.dup
  if @forked_idea.save(forked_idea_attributes)
    redirect_to forked_ideas_edit_path(@idea), notice: "Forking this idea!"
  else
    render ideas_path
  end   
end


def destroy
  if @idea.destroy
    redirect_to ideas_path, notice: "idea has been deleted"
  else
    redirect_to ideas_path, notice: "idea has been deleted"
  end
end

private

def forked_idea_attributes
  params.require(:forked_idea).permit([:title, :body, :tag_list, :image])
end

end

结束

我的forked_idea模型:

代码语言:javascript
复制
class ForkedIdea < ActiveRecord::Base

  belongs_to :user

路线

代码语言:javascript
复制
resources :ideas do
  resources :forked_ideas, only:[:edit, :update, :destroy]
end  

这是rake routes

代码语言:javascript
复制
edit_idea_forked_idea GET    /ideas/:idea_id/forked_ideas/:id/edit(.:format)    forked_ideas#edit
     idea_forked_idea PATCH  /ideas/:idea_id/forked_ideas/:id(.:format)         forked_ideas#update
                      PUT    /ideas/:idea_id/forked_ideas/:id(.:format)         forked_ideas#update
                      DELETE /ideas/:idea_id/forked_ideas/:id(.:format)         forked_ideas#destroy
                ideas GET    /ideas(.:format)                                   ideas#index
                      POST   /ideas(.:format)                                   ideas#create
             new_idea GET    /ideas/new(.:format)                               ideas#new
            edit_idea GET    /ideas/:id/edit(.:format)                          ideas#edit
                 idea GET    /ideas/:id(.:format)                               ideas#show
                      PATCH  /ideas/:id(.:format)                               ideas#update
                      PUT    /ideas/:id(.:format)                               ideas#update
                      DELETE /ideas/:id(.:format)                               ideas#destroy
EN

回答 1

Stack Overflow用户

发布于 2014-05-16 06:10:12

会不会"id“是nil -给定你的错误消息:

代码语言:javascript
复制
ActionController::UrlGenerationError - No route matches {:action=>"update", :controller=>"forked_ideas", :format=>nil, :id=>nil, :idea_id=>#<Idea id: 78, 

而当"id“为nil时,你似乎没有路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23689244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档