使用Rails 3和jquery,我正在尝试为我的帖子#show页面设置一个简单的3选项卡导航,点击时将_post _comments和_related partials渲染到视图中。
目前,这些部分没有自己的控制器操作。
处理这些ajax调用最干净的Rails方法是什么?
我尝试了这个,但它不起作用:
邮政控制人:
def tab
respond_to do |format|
format.js
end
end
展后视图:
<%= link_to "Comments", {:action => 'tab'}, :remote => true %>
/views/posts/tab.js.erb
$('#postshow').html("<%= escape_javascript(render('comments')) %>");
但是,如果我这样做,当我尝试打开我的Track Show页面时,我会因为这个错误而感到困惑 “没有路线匹配{:action =&gt;”tab“,:controller =&gt;”posts“}”
我认为我为tab定义了一个应该渲染tab.js.erb的动作...但更重要的是,这似乎有点笨拙,只需在三个部分之间切换。
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
你的行动在于PostsController,所以你应该写:
<%= link_to "Comments", {:controller => "posts", :action => "tab"}, :remote => true %>
答案 1 :(得分:0)
好的,明白了。只需要将资源添加到routes.rb ...认为这部分只是神奇地发生了。
把它放在routes.rb
中resources :posts do
...
member do
get 'tab'
end
end
现在它找到路线并渲染javascript。
话虽如此,如果有人读过这篇文章并且可以指出一种更清晰或更简单的方法来设置渲染部分的ajax链接,那将是超级甜蜜。