Ruby on rails RubyonRails:将_链接到行为怪异

Ruby on rails RubyonRails:将_链接到行为怪异,ruby-on-rails,Ruby On Rails,所以。。这是我的链接 “存档”%> 以及控制台中的输出 Parameters: {"action"=>"archive", "controller"=>"achievables"} 为什么行动不是“存档”? 该方法在控制器中定义。。。拼写正确,一切正常 编辑: 从routes.rb map.archives 'achievable/archive', :controller => 'achievables', :action => 'archive' map

所以。。这是我的链接

  • “存档”%>
  • 以及控制台中的输出

     Parameters: {"action"=>"archive", "controller"=>"achievables"}
    
    为什么行动不是“存档”? 该方法在控制器中定义。。。拼写正确,一切正常

    编辑: 从routes.rb

      map.archives 'achievable/archive', :controller => 'achievables', :action => 'archive'
    
      map.resources :achievables, :member => {:build => [:get,:post], :publish_detail => [:get,:post], :publish=>[:get,:post], :confirm_publish=>[:get,:post], :confirm_delete=>[:get,:post]}
    
    现在,错误是

    Showing app/views/layouts/build_archivable.html.erb where line #6 raised:
    
    Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
    

    这也是一条错误的道路=\

    尝试将操作指定为字符串而不是符号:

    <%= link_to 'Archive', :action => 'archive' %>
    
    “存档”%>
    

    或者,您可能在
    config/routes.rb
    中定义了一个更高优先级的路由,该路由在默认的
    /:controller/:action/:id
    路由之前得到匹配(Rails从文件顶部开始向下运行,直到找到与URL匹配的路由).

    您将如何覆盖这种路由?@DerNalia编辑您的问题,向我们显示路由文件的内容,然后我可以告诉您是否存在这种情况。完成。我只是补充了我认为相关的内容。路由文件为100行。如果我在格式化方面有发言权,可能会更多。明白了,我接下来必须指定出于某种原因使用应用程序布局。那么它是进入
    存档
    操作还是进入
    显示
    操作?不清楚,因为你编辑了你的问题。