-1

想了半天,怎么正确使用button_to和button_to_functions。我是 Rails 新手,看到很多令人困惑的语法。

我在 PagesHelper 模块 printString() 中创建了方法,并希望在单击按钮时调用它。有人可以指出怎么做吗?

我不想通过控制器跳转到新页面,我只想留在页面上并在点击按钮时打印出消息

非常感谢!

    module PagesHelper
     def printMessage()
            return "this message from Helper"
     end    
    end

   ------------------------------------------------------------------

   this doesnt work
   <%= button_to "Print", "printMessage()" %>
4

2 回答 2

0

这应该有效:

module PagesHelper
  def print_message
    "this message from Helper"
  end    
end

<%= button_to_function "Print", "alert('#{print_message}')" %>
于 2013-10-27T12:53:41.970 回答
0

根据 Berrlington 的评论,您对 Javascript 和 Rails 感到困惑。JS 提供客户端功能,允许您在DOM(文档对象模型)加载时进行操作。Rails 基本上是服务器的渲染引擎,允许您使用动态加载的数据来显示这些页面


你需要使用 Javascript

您正在尝试通过单击按钮将数据动态输入到呈现的页面中

问题是 Rails 在页面已经加载时无法更改页面上的元素。Rails 不是实时处理引擎,它接受 HTTP 请求,并根据请求呈现“视图”

让你的按钮工作的方法是使用Rails 的 JS 功能来动态加载内容,如下所示:

<%= button_to "Create", :action => "print_message", :remote => true %>

#app/controllers/your_controller.rb
def print_message
    respond_to do |format|
        format.js 
    end
end

#app/views/your_controller/print_message.js
alert('your message');
于 2013-10-27T12:54:03.320 回答