我想在我的web应用程序的索引页上做一个表单。现在,我有一个名为home_controller.rb
的控制器和一个名为index.html.erb
的视图。这两个人现在处理我网站的“索引”。我也试图向该页面添加一个表单。的index.html.erb
内容是:简单的导轨形式的用例帮助
<%= form_tag(query_path, :method => "get") do %>
<%= submit_tag("Go!") %>
<% end %>
然而,铁轨给我这个错误,当我加载页面:
未定义的局部变量或方法 `query_path”
这里是我的想我想要发生:我想home_controller.rb
中的另一个行动,这被称为query
(现在是唯一的行动在这个控制器我s index
)。这个query
动作是当你点击“Go!”时从我的表单中调用的动作。我如何做到这一点?什么需要在那里而不是query_path
?
编辑:
我觉得必须有一个简单的答案,而不是修改routes.rb
文件。我如何错误地思考这个路由业务?在我的脑海中,我的页面上的任何操作都应默认为现有页面的控制器。因此,如果我在我的index.html.erb
页面上,该页面属于我的home_controller.rb
,我的:action => 'query'
应该默认查找我的home_controller.rb
中的操作。 为什么这不会发生?这正是我想要发生的事情。
也许我正在考虑这是完全错误的方式,这就是为什么我们一起黑客解决方案。这就是我想要的:我希望用户点击一个按钮,这会导致应用程序查询外部API,获取一些JSON并显示JSON的内容。在我的脑海中,这意味着按钮转到另一个操作,在同一个控制器中查询外部API,并将JSON传递回显示在完全相同的页面上(所有这些都使用Ajax)。我以错误的方式接近这个问题吗?
什么版本铁轨是这样的吗? – 2011-04-25 04:43:42
3.0.7(#FILLERTEXTISANNOYING) – sepiroth 2011-04-25 04:45:57