【问题标题】:Ruby on Rails: link_to acting weirdRuby on Rails:link_to 行为怪异
【发布时间】:2010-07-12 14:52:23
【问题描述】:

所以..这是我的link_to

  • '存档' %>
  • 和我在控制台中的输出

     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
    

    这又是一条错误的道路。 =\

    【问题讨论】:

      标签: ruby-on-rails


      【解决方案1】:

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

      <%= link_to 'Archive', :action => 'archive' %>
      

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

      【讨论】:

      • 你将如何覆盖这种路由?
      • @DerNalia 编辑您的问题,向我们展示您的路线文件的内容,然后我可以告诉您是否是这种情况。
      • 完成。我只添加了我认为相关的内容。路线文件是 100 行。如果我对格式有发言权,可能会更多。
      • 知道了,接下来由于某种原因我不得不指定使用应用程序布局。
      • 那么它是进入archive 操作还是进入show 操作?由于您编辑了问题,因此不清楚。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多