0

我想根据从数据库中获取的文本生成一个链接。此链接应该能够通过在文本字段中显示另一个值来响应 onclick 事件。

这样做的目的是显示消息标题,然后在单击给定消息时显示与单个消息有关的详细信息,而不是最初检索和传输整个文本集。

4

1 回答 1

0

如果你想用不显眼的 Javascript 以 Rails 的方式制作它,你需要做接下来的事情:

首先,您需要将jquery和添加jquery_ujs到您的 application.js 资产(默认情况下,此文件已包含在其中)。

然后,在带有消息列表的视图文件中,使用启用了远程选项的链接app/views/messages/index.html.erb

<%= link_to message.title, details_path(message), :remote => true %>

远程链接会将 GET AJAX 调用发送到您的服务器,而不是简单的 GET。

在你需要准备的路线中details_path,像这样config/routes.rb

get '/messages/:id/details' => 'messages#details'

details方法添加到您的MessagesController, app/controllers/messages_controller.rb

class MessagesController
  def details
    @details_string = # ... take it from DB via params[:id]
  end
end

并且至少为新方法创建一个视图文件app/views/messages/details.js.erb

$('#details-input').val('<%= @details_string %>');

因此,当用户单击带有消息标题的链接时,浏览器会向服务器发送 AJAX 调用并获取类似的 Javascript $('#details-input').val('Details string...');,它会运行它,您会Details string...#details-input文本字段中看到。

于 2013-01-30T13:49:21.270 回答