链接到json方法,“undefined method`stringify_keys'”

时间:2012-10-05 03:01:32

标签: ruby-on-rails json hyperlink format

我有一个控制器,我想要2个响应,通用的html和json。在我看来,我希望有一个指向json的链接。我在apidoc中看到,有人说你通过做这样的事情来完成在link_to中指定格式。

<h3><%= link_to "Indexes" , 
        params.merge({:format => "json"}) , 
       state_laws_path %></h3>

但是,每次访问此链接时,此链接都位于(state_laws / index.html.erb),我收到以下错误。

undefined method `stringify_keys' for "/state_laws":String

Extracted source (around line #3):
1: <h2>State Laws</h2>
2: <h3><%= link_to "Create State Law", new_state_law_path %></h3>
3: <h3><%= link_to "Indexes" , 
           params.merge({:format => "json"}) , 
           state_laws_path %>    </h3>
4: <ul id="state_laws">
5:   <% @state_laws.each do |law| %>
6:       <li class="<%= cycle("odd", "even") %>">

有没有人有任何关于如何告诉我的观点的想法,我想要一个链接,使用json格式转到控制器的索引操作?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

试试这个:

<%= link_to "Indexes", state_laws_path(params.merge(:format => "json")) %>

将参数传递给state_laws_path方法将使其返回包含它们的URL。例如,如果您的参数包含{:foo => "bar"}且您的state_laws_path为"/state_laws",则上述调用将返回路径"/state_laws.json?foo=bar"