我想有一个按钮,当点击,将执行rails代码这需要javascript吗有ruby javascript(.js.rb)吗?
如果单击按钮执行
不过,我不想重定向或转到新视图,只想执行ruby代码。

最佳答案

对。尝试用谷歌搜索不引人注目的javascript。对于rails,以下是一般原则(rails v 3.0或更高版本),通常用于表单。
下面是一个使用远程表单通过javascript发布“消息”的示例。
首先设置控制器以响应javascript例如,一个“create”动作看起来像这样:

def create
  @message = Message.new(params[:contestant])
  #do whatever you want
  respond_to do |format|
  if @contestant.save
     format.js
     format.html { redirect_to(@message, :notice => 'Message was successfully created.') }
  else
     #deal with errors here/ redirect wherever you want
  end

现在创建一个名为“create.js.erb”的文件这遵循控制器操作的rails命名约定,但请注意js.erb扩展。
在这段代码中,您可以放置任何想要响应的javascript,在rails 3.1中,或者在默认情况下也可以使用jquery。
$(#messageform).html("<h3>Thanks for sending your message we will be in touch shortly</h3>");

然后,在您希望启动此javascript调用的视图中,您将放置如下表单:
<div id="messageform">
  <%= form_for @message, :remote => true do |f| %>
    <h2>Send us a message</h2>
      <p>
        <%= f.label :email %>
        <%= f.text_field :email %>
      </p>
      <p>
        <%= f.label :message %>
        <%= f.text_area :message %>
      </p>
      <p>
        <%= f.submit "Send message!"%>
      </p>
   <% end %>
</div>

这是的标准表格这里唯一需要特别注意的是:remote=>true参数。
无论如何,希望这有帮助:)

关于javascript - JS按钮执行Rails代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8692308/

10-11 22:27
查看更多