我想有一个按钮,当点击,将执行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/