我正在创建一个应用程序,其中一个用户可以创建和@idea,然后另一个@用户可以‘分叉’@idea。为此,我使用了复制方法ActiveRecord::Core#dup。
这就是我想要发生的。@user打开@idea显示页面并单击一个图标,该图标将引导他/她进入一个新的@forked_idea编辑页面,该页面允许用户编辑原始的@idea并将其另存为新的@forked_idea。
这是我的展示页面上的原始@idea的片段。当图标被点击,我希望它路由到一个编辑页面(在或到的想法)
<%= link_to "<i class='fa fa-code-fork fa-5x'></i>".html_safe, idea_forked_idea_path(@idea), method: :get %>当我单击图标以派生@idea时,出现以下错误:
ActionController::UrlGenerationError - No route matches {:action=>"update", :controller=>"forked_ideas", :format=>nil, :id=>nil, :idea_id=>#<Idea id: 78, 下面是应用程序/controllers/ideas_Controler.rb
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模型:
class ForkedIdea < ActiveRecord::Base
belongs_to :user路线
resources :ideas do
resources :forked_ideas, only:[:edit, :update, :destroy]
end 这是rake routes
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发布于 2014-05-16 06:10:12
会不会"id“是nil -给定你的错误消息:
ActionController::UrlGenerationError - No route matches {:action=>"update", :controller=>"forked_ideas", :format=>nil, :id=>nil, :idea_id=>#<Idea id: 78, 而当"id“为nil时,你似乎没有路由。
https://stackoverflow.com/questions/23689244
复制相似问题