0

我有一个控制器,我想要 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 格式转到控制器的索引操作?任何帮助是极大的赞赏。

4

1 回答 1

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"

于 2012-10-05T03:03:50.587 回答