渲染部分形式的路由错误

时间:2011-04-16 08:25:09

标签: ruby-on-rails forms routing partial

我正在创建一个项目,我有一个类online_score,它的属性之一是一个名为url online_score_url个对象的数组。我到目前为止所做的是以下内容。代码可能有点脏,因为我不断尝试新事物,但是一旦我开始工作,我就会清理它。 视图/ online_score /新:

<h3>Links: </h3>
<div class="urlInput">
<%f.fields_for :url do |f| %>
<div class="inputset">
<%= f.label :url %>  <%= f.url_field :url, :value => "http://www.google.be"%>
<%= f.label :description %>  <%= f.text_field :description %>
<%= link_to_remove_fields "remove", f %>
</div>
<%end %>
<%= add_url_link "Add Another link", f %> #works fine if I remove this rule
</div>

视图/ online_score / _online_score_url_fields:

<%= f.fields_for :item do |b| %>
<div class="inputset">
<%= b.label :url %>  <%= b.url_field :url, :value => "http://www.google.be"%>
<%= b.label :description %>  <%#= b.text_field :description %>
<%= link_to_remove_fields "remove", b %>
</div>
<% end %>

我现在的问题是,我希望能够动态添加我尝试用JQuery做的online_score_url个对象的输入。我尝试通过渲染部分来做到这一点: 助手/ online_scores_helper.rb:

def add_url_link(name, f)
link_to_function name do |page|    
  item = OnlineScoreUrl.new("", "")
  instrument_online_score = render :partial => "online_score_url_fields", :locals => {:f => f, :item => item}

  page << %{
    $('.links').append("#{ escape_javascript online_score_url }");
  }
end
end

现在的问题是它出现以下错误:

  

Online_scores中的ActionController :: RoutingError #new

     

显示/home/kvhooreb/jenna_vopro/score/app/views/online_scores/new.html.erb,其中line&gt;#22募集:

     

没有路线匹配{:action =&gt;“show”,:controller =&gt;“online_scores”,:locale =&gt;:en}   提取的来源(第22行):

     

19:   20:&lt;%#= render“online_score_url_fields”,:f =&gt; f%&gt;   21:&lt;%end%&gt;   22:&lt;%= add_url_link“添加另一个链接”,f%&gt;   23:   24:
  25:   Rails.root:/ home / kvhooreb /​​ jenna_vopro / score

     

应用程序跟踪|框架跟踪|完整追踪   app / helpers / online_scores_helper.rb:20:in block in add_url_link' app/helpers/online_scores_helper.rb:15:in add_url_link'   app / views / online_scores / new.html.erb:22:in block in >_app_views_online_scores_new_html_erb__1492671958001855269_22836400_2958786211230549542' app/views/online_scores/new.html.erb:3:in > _ app_views_online_scores_new_html_erb__1492671958001855269_22836400_2958786211230549542'   请求

     

参数:

     

{ “片”=&gt; “中1”,   “区域设置”=&gt; “中EN”}

现在我不知道是什么原因引起的。有没有人有想法? 谢谢你的时间。

1 个答案:

答案 0 :(得分:2)

根据您提供的信息,我将假设问题出在app/helpers/online_scores_helper.rb,具体来说,这一行:

$('.links').append("#{ escape_javascript online_score_url }");

如果您为online_scores定义了标准资源,则要么指的是特定的在线分数记录online_score_url(online_score.id),要么参考在线分数列表online_score_urls

online_score_url,单数形式,通常会期望id以呈现路线。没有它,您将收到错误消息:

"No route matches {:action=>"show", :controller=>"online_scores", :locale=>:en} Extracted source (around line #22):"