2010-07-12 78 views
0

所以..這裏是我的link_toRuby on Rails的:的link_to怪怪

  • <%=的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 
    

    這又是走錯了路。 = \

    回答

    1

    嘗試指定的動作作爲一個字符串,而不是一個符號:

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

    或者,你可能有內config/routes.rb這是獲得默認/:controller/:action/:id路線之前匹配的定義優先級更高的路線(Rails的開始於文件的頂部並向下工作,直至找到與URL匹配的路線)。

    +0

    你將如何覆蓋這種路由? – NullVoxPopuli 2010-07-12 15:18:26

    +0

    @DerNalia編輯你的問題,告訴我們你的路線文件的內容,然後我可以告訴你,如果是這樣的話。 – 2010-07-12 15:30:05

    +0

    完成。我只添加了我認爲相關的內容。路線文件是100行。如果我在格式化方面有發言權可能會更多。 – NullVoxPopuli 2010-07-12 15:35:52