如何处理rails 3中基于ajax的子组件?
我正在重构rails 3应用程序,并想知道如何最好地处理基于ajax的子组件?
我有一个’仪表板’控制器。 这是通过’dashboard#show’动作呈现的。
我现在想要一个基于ajax的’tabs’组件,它是仪表板的一部分。
我有两种可能的解决方案:
解决方案1:将标签组件实现为动作,例如’dashboard#tabs’(这是我目前的解决方案)。 这给了我丑陋的帮手:
- tabs_dashboard_path
解决方案2:将其实现为嵌套资源,例如’dashboard / tabs#show’。 这将给出很好的命名助手,例如:
- dashboard_tabs_path
记住我有很多其他ajax组件什么是最好的行动方案?
如果我使用解决方案2,我的资源将变得非常嵌套,并且他们只会有一个“显示”动作; 这对我来说似乎有点过于冗长。
例如,路线将被指定为:
resource :dashboard, :only => [:show], :controller => "users/dashboard" do resource :tabs :only => [:show], :controller => "users/dashboard/tabs" do resource :steps :only => [:show], :controller => "users/dashboard/tabs/steps" #etc.... end end
有没有一个很好的轨道方式来处理这个?
我倾向于使用很少的动作保持我的控制器,并且只处理基本的REST动词。 因此,在多展示情况下,我会保留单个dashboard#show
#show并具有部分/布局来处理选项卡。 我的理由是标签本身不是资源,我也不会对它们实际执行任何RESTful操作。
- Ajaxified Star Rating System未正确更新
- Ruby on Rails阻止Turbolinks劫持AJAX操作
- ActionController :: UnknownFormat with format.js for ajax implementation(Rail 4)
- 如何关闭仅用于json的rails protect_from_forgeryfilter
- 作为可投票的Ajax投票大小不更新Rails
- Rails,Backbone,PhoneGap,CORS(Access-Control-Allow-Origin错误不允许)
- 分页不仅适用于某个查询
- Rails form_for collection_select忽略select_tag接受的远程ajax调用
- Javascript不是在脚本中呈现而是作为html呈现