0

我对 Rails(和 Web)编程非常陌生,所以我什至不确定我应该为此寻找什么技术。

我已经下载并运行了Rails 教程的前五章,但现在有一个非常简单的请求。

在网页的左侧,我将有一个表格。如果用户单击该表中的元素,我希望页面的右侧显示一些新内容。

我已经有一个页面来显示表格,即:

<div class="center hero-unit">
   <div class="container">
   <h2>2012 Yearly Report</h2>
     <div class="row-fluid">
       <div class="span12">
           <div class="span4">
            <table border="1">
            </table>
           </div>
           <div class="span6">
                <!-- load stuff here based on what someone clicks on in the table -->
           </div>
         </div>
      </div>
   </div>
</div>

我正在使用引导布局来显示所有内容。我只是不明白如何根据“span4”中的用户行为更改“span6”div 的内容。

4

1 回答 1

1

这是一个很难回答的问题。这实际上取决于您要显示什么样的数据以及您正在寻找什么样的交互性。

您并没有真正提供有关您要完成的工作的太多信息,但如果我不得不猜测,您正在尝试从数据库加载数据并将其插入到元素中而不离开当前页面。这就是 AJAX 的用途(您的教程将在第 11 章详细介绍)并且涉及大量 javascript,这通常超出了像 Ruby 这样的服务器端语言的范围。幸运的是,rails 包含帮助程序,可以轻松地将 AJAX 功能包含到您的 Web 应用程序中,而无需编写大量 javascript(尽管您必须编写一些)。

例如,假设您的表格有一个文章列表,并且您希望在单击其链接时在 div 中显示文章的内容。

首先是链接:

<%= link_to article.name, article_url(article), :remote => true %>

remote 选项告诉 Rails 它是一个 AJAX 链接。

接下来,您需要为文章的显示操作呈现一个 javascript 模板。您将其命名为 show.js.erb。

假设您希望将数据加载到的 div 如下所示,

<div id='article-content'></div>

你会希望你show.js.erb包含以下内容:

$('#article-content').html("<%=javascript_escape @article.content %>");

当单击您的远程链接之一时,将评估此 javascript(带有嵌入的 ruby​​)代码,并将您的 div 的内容替换为文章的内容。

网上有很多资源可以为您提供更多信息。看起来railscasts一周前刚刚发布了关于这个主题的一集。它需要订阅才能查看,但非常值得(特别是如果您刚刚开始)。

于 2012-10-10T00:31:04.560 回答