gpt4 book ai didi

ruby-on-rails - 如何在 Rails 助手中使用 jQuery

转载 作者:行者123 更新时间:2023-12-01 13:00:34 26 4
gpt4 key购买 nike

我正在尝试在 Rails 应用程序中使用 jQuery UI 中的选项卡功能。我正在使用导航助手,我想保持这种状态。我的助手中的代码是:

def links_for_navigation
html = ""
html = <<HTML
<ul>
<li><a href="#tabs-1">Courses</a></li>
<li><a href="#tabs-2">Parts</a></li>
<li><a href="#tabs-3">Categories</a></li>
</ul>
<div id="tabs-1"><% link_to "Courses", courses_path %>
<div id="tabs-2"><% link_to "Parts", parts_path %>
<div id="tabs-3"><% link_to "Categories", categories_path %>
HTML
end

我的 View 使用 <% links_for_navigation %> 提取代码

我添加到我的 application.js :

jQuery(function() {
jQuery("#tabs").tabs();
});

还有我的application.html.erb有:

<%= stylesheet_link_tag 'courses', 'jquery-ui-1.8.13.custom.css' %>
<%= javascript_include_tag :defaults %>
<%= javascript_include_tag 'jquery-1.5.1.min.js', 'jquery-ui-1.8.13.custom.min.js', 'application' %>

当我尝试加载页面时,我得到 cannot find string HTML before EOF .我做错了什么?

最佳答案

我建议使用部分方法,而不是辅助方法。部分,我称之为_nav.html.erb , 看起来像下面这样(注意 id="tabs" 周围的 div ):

<div id="tabs">
<ul>
<li>
<a href="#tabs-1">Courses</a>
</li>
<li>
<a href="#tabs-2">Parts</a>
</li>
<li>
<a href="#tabs-3">Categories</a>
</li>
</ul>

<div id="tabs-1">
<%= link_to "Courses", courses_path %>
</div>
<div id="tabs-2">
<%= link_to "Parts", parts_path %>
</div>
<div id="tabs-3">
<%= link_to "Categories", categories_path %>
</div>
</div>

然后在适当的 View 文件中,您可以通过调用渲染来插入部分:

<%= render :partial => 'nav' %>

我从未使用过 jQuery 选项卡,但尝试将其添加到 application.js , 基于 this example . "#tabs"内部选择器 $()对应于id="tabs"从上面:

$(function() {
$( "#tabs" ).tabs();
});

我也会提供一些提示/提醒:

  • 嵌入式 ruby (ERB) 标签需要有 =如果你想让他们打印一些东西,即 <%= @user.name %><% @user.name %> .第一个会将字符串输出到文件中,第二个不会。在某些情况下您可能不想打印某些内容,因此您可以省略 =。 .
  • 请务必关闭所有 HTML 标记。 Rails 的 ERB 文件无论如何都会变得困惑,因此正确的 HTML 结构是关键。
  • 避免在 *.html.erb 之外使用 HTML文件。这不是金科 Jade 律,但却是一个很好的经验法则。

关于ruby-on-rails - 如何在 Rails 助手中使用 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287342/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com