Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 尝试编辑时没有路由匹配_Ruby On Rails_Ruby_Ruby On Rails 3_Forms_Routes - Fatal编程技术网

Ruby on rails 尝试编辑时没有路由匹配

Ruby on rails 尝试编辑时没有路由匹配,ruby-on-rails,ruby,ruby-on-rails-3,forms,routes,Ruby On Rails,Ruby,Ruby On Rails 3,Forms,Routes,独家报道:我创建了一个测试应用程序,允许用户创建想法,然后在这些想法中添加“气泡”。目前,气泡只是文本。我成功地将泡沫与想法联系起来。此外,当用户去查看一个想法时,它会列出与该想法相关的所有气泡。用户甚至可以删除给定想法的气泡 我的问题在于编辑气泡。当用户查看一个想法时,他会看到该想法的内容以及该想法的任何气泡。因此,我在ideas“show”视图中设置了所有气泡控件(编辑和删除)。我为创意编辑气泡的代码是。我运行了rake routes,以找到编辑气泡的正确路径,这就是所列出的 这是我的错误:

独家报道:我创建了一个测试应用程序,允许用户创建想法,然后在这些想法中添加“气泡”。目前,气泡只是文本。我成功地将泡沫与想法联系起来。此外,当用户去查看一个想法时,它会列出与该想法相关的所有气泡。用户甚至可以删除给定想法的气泡

我的问题在于编辑气泡。当用户查看一个想法时,他会看到该想法的内容以及该想法的任何气泡。因此,我在ideas“show”视图中设置了所有气泡控件(编辑和删除)。我为创意编辑气泡的代码是
。我运行了
rake routes
,以找到编辑气泡的正确路径,这就是所列出的

这是我的错误:
没有路由匹配{:action=>“edit”,:controller=>“bubbles”}

在我的气泡控制器中,我有:

def edit
@idea = Idea.find(params[:idea_id])
   @bubble = @idea.bubbles.find(params[:id])
end

def update
@idea = Idea.find(params[:idea_id])
  @bubble = @idea.bubbles.find(params[:id])

respond_to do |format|
  if @bubble.update_attributes(params[:bubble])
    format.html { redirect_to(@bubble, 
                  :notice => 'Bubble was successfully updated.') }
    format.xml  { head :ok }
  else
    format.html { render :action => "Edit" }
    format.xml  { render :xml => @bubble.errors,
                  :status => :unprocessable_entity }
  end
 end
end
更进一步,我的
routes.rb文件中有以下内容

resources :ideas do
  resources :bubbles
end
到目前为止,除了我试图编辑一个气泡外,一切似乎都正常

我想要一些指导

谢谢

这是我的
show.html.erb
创意文件:

<h2>Bubbles</h2>
<% @idea.bubbles.each do |bubble| %>
<p>
<b>Bubble:</b>   
<%= bubble.description %>
</p>    
<p> 
<%= link_to 'Edit Bubble', edit_idea_bubble_path (@idea) %> 
</p>    
<tb />  
<p>     
<%= link_to 'Delete Bubble', [bubble.idea, bubble],               
    :confirm => 'Are you sure you want to delete this bubble?',               
    :method => :delete %>   
</p>
<% end %>

<h2>Add a bubble:</h2>
<%= form_for([@idea, @idea.bubbles.build]) do |f| %>  
    <div class="field">    
    <%= f.label :description %><br />    
    <%= f.text_area :description %>  
    </div>  

    <div class="actions">    
    <%= f.submit %>  </div><% end %>
最后,我的
\u form.html.erb
泡泡文件:我相信这就是问题所在

<% form_for([@idea, @idea.bubbles.build]) do |f| %>  
  <%= f.error_messages %>

<div class="field">    
    <%= f.label :description %><br />    
    <%= f.text_area :description %>  
</div>  

<div class="actions">    
    <%= f.submit %>  
</div>
<% end %>



您必须提供创意和气泡对象:

<%= link_to 'Edit Bubble', edit_idea_bubble_path(@idea,@bubble) %>

更新:

编辑_form.html.erb文件

<% form_for([@idea, @bubble]) do |f| %> 

首先在show.html.erb文件中构建路线

<%= link_to 'Edit Bubble', edit_idea_bubble_path(@idea, bubble) %>
当操作被编辑时

@idea = Idea.find_by_id(:params[:idea_id])
@bubble = @idea.bubbles.find_by_id(:params[:bubble_id])
在您的_form.html.erb中

<% form_for([@idea, @bubble]) do |f| %>


谢谢,这似乎有效,但现在当我单击“编辑气泡”时,我得到以下错误
找不到ID=5的气泡[其中(“气泡”.idea\u ID=5)]
。使用
@idea
作为
edit\u idea\u bubble\u path
中的对象返回idea\u id(为5),并且没有正确链接到编辑bubble(我似乎无法链接编辑以命中bubble\u id)。有什么建议吗?另外,将
@idea,@bubble
放在
编辑\u idea\u bubble\u路径中
返回了另一个错误,所以我尝试只放
@idea
@bubble
也不起作用。它起作用了,但它给我带来了另一个问题。现在,当我单击编辑气泡时,它会将我带到创建新气泡的窗体。当我调用
edit\u idea\u bubble\u path(@idea)
时,它不使用bubbles id。请使用您用来编辑bubble的表单标签更新上面的问题。感谢您的尝试,但它仍然不起作用。当您单击编辑气泡时,它只会显示用于创建气泡的表单。编辑链接不能捕捉气泡id。
@idea = Idea.find_by_id(:params[:idea_id])
@bubble = @idea.bubbles.find_by_id(:params[:bubble_id])
<% form_for([@idea, @bubble]) do |f| %>