Jquery 如何在RubyonRails中从一个子目录呈现多个模板
我的页面视图目录中存储了一些模板: 页面/设置/编辑\u帐户/ basic_info.html.erb relations.html.erb contact.html.erb 我有一段使用jquery.load函数的javascript。我基本上允许用户点击页面上的链接:基本信息、亲属、联系人,以及他们需要查看的信息,以便在不刷新页面的情况下将编辑显示在同一页面上。如果我使用这个路径“profile_path”,这是我在路径中设置的路径,那么它工作得非常好 例如:Jquery 如何在RubyonRails中从一个子目录呈现多个模板,jquery,ruby-on-rails,ruby,ruby-on-rails-3,rubygems,Jquery,Ruby On Rails,Ruby,Ruby On Rails 3,Rubygems,我的页面视图目录中存储了一些模板: 页面/设置/编辑\u帐户/ basic_info.html.erb relations.html.erb contact.html.erb 我有一段使用jquery.load函数的javascript。我基本上允许用户点击页面上的链接:基本信息、亲属、联系人,以及他们需要查看的信息,以便在不刷新页面的情况下将编辑显示在同一页面上。如果我使用这个路径“profile_path”,这是我在路径中设置的路径,那么它工作得非常好 例如: <script type
<script type="text/javascript">
$("#theBasics").click(function() {
$("#editProfileContent").load(<%= profile_path %>);
});
$(“#theBasics”)。单击(函数(){
$(“#editProfileContent”).load();
});
不过,我想做的是为pages/settings/edit_account中的每个模板设置更多这些功能/
这不起作用:
<script type="text/javascript">
$("#theBasics").click(function() {
$("#editProfileContent").load(<%= render 'pages/settings/edit_account/basic_info' %>);
});
$(“#theBasics”)。单击(函数(){
$(“#editProfileContent”).load();
});
我可以在控制器中创建几个动作并为它们设置路由,或者我可以创建一个全新的控制器
但必须有一种更干净的方式来实现我想要实现的目标。我不能对所有模板使用1个操作吗
如果我将“页面/设置/编辑\帐户/基本\信息”放入页面控制器中的一个操作中,然后在javascipt.load函数中,我只调用操作路由,它可以工作,但一次只能呈现一个模板
我希望我没有把任何人弄糊涂
非常感谢您的帮助。您最好的选择是创建多个操作。如果每个ajax调用正在加载不同的信息或该信息的不同视图,那么它应该有自己的操作端点 如果唯一的区别在于视图,则可以使用单个控制器动作,并传入一个参数,然后可以在动作的渲染阶段使用该参数来控制使用哪个视图 例如:
case params[:view]
when 'contact' render 'pages/settings/contact...'
when 'relatives' render 'pages/settings/relatives...'
end
等等
然后
$("#dest").load('<%= profile_path({ :view => 'contact' }) %>');
$(“#dest”).load(“'contact'})%>”;
在您的javascript中。非常感谢。我在控制器中的操作中使用case。我想知道是否有一个rails相当于这个php版本,因为这就是我应该如何解决它的。谢谢