2012-08-03 91 views
1

这段代码的页面时抛出一个错误渲染,因为它没有找到该链接的路径轨道格式化后的方法较旧的3.2版本,但在升级到3.2.4以后,它开始抛出一个错误,因为它只在一条POST路由存在时才会寻找GET路径(它意味着去一个标准的创建方法)。链接/按钮3.2.4+

我将它从link_to切换到button_to,并尝试明确地从HTML选项中散列出URL选项以防止模糊,但我仍然搞砸了一些东西。

我假设如果button_to是炸弹,我正在做一件令人难以置信的错误。我只是不确定是什么。

回答

2

,它的回落到一个GET请求表明:method => :post不是正在进入选项参数的事实:

# File actionpack/lib/action_view/helpers/url_helper.rb, line 231 
def link_to(*args, &block) 
    if block_given? 
    options  = args.first || {} 
    html_options = args.second 
    link_to(capture(&block), options, html_options) 
    else 
    name   = args[0] 
    options  = args[1] || {} 
    html_options = args[2] 
    ..... 
    end 
end 

由于unless操作的优先级比方法调用越大,叶子division_clusters_path(@current_dvision, courses: @cluster_courses)作为一个可能的罪魁祸首。如果它返回的是被args [1]吞噬的东西,那么args [2]会得到剩下的选项(这是为args [1]指定的)。顺便说一下,它看起来像有一个错字:@current_dvision

+0

谢谢,这是一个尴尬的教训(这是错字)。我手中输入了所有的检查,以验证数据传递到链接,所以我看到了我期望看到的。我认为这是模糊的链接参数格式,因为这是我最常见的错误,当谈到link_to类型的东西。对不起,谢谢:) – cgr 2012-08-03 21:46:35