admin管理员组文章数量:1287513
I'm wondering how I can embed Rails code inside an html.erb so that I can run a Ruby function on the press of a button. I've googled around, and if this is not possible, how could I run a JavaScript function that updates variables inside a Ruby on Rails database?
I'm wondering how I can embed Rails code inside an html.erb so that I can run a Ruby function on the press of a button. I've googled around, and if this is not possible, how could I run a JavaScript function that updates variables inside a Ruby on Rails database?
Share Improve this question edited Jul 26, 2011 at 15:22 Naftali 146k41 gold badges247 silver badges304 bronze badges asked Jul 26, 2011 at 15:21 jonjon 231 silver badge3 bronze badges 2- What will your Ruby function do? – Jeriko Commented Jul 26, 2011 at 15:24
- increment a variable on a database by 1 – jon Commented Jul 26, 2011 at 15:25
2 Answers
Reset to default 12I think we need to talk a bit about how the web works. No worries; this is confusing for a lot of people when they first start building web apps.
There are two types of code here. The first type is the server-side code, which runs on your server. In this case, it's Ruby code, and the user can't see it. This server-side code generates the second type of code, client-side code. In this case, it's Javascript code, since that's what browsers understand. The user can see it and even modify it, and it runs on the user's puter.
Since the database lives on your server, and is not publicly accessible (after all, wouldn't that be pretty bad?), you will have to use server-side code to interact with the database. Code that runs on the user's browser cannot directly interact with the database, so you'll have to use a kind of "glue" technology here.
One way of doing that is an AJAX request. This is when your Javascript code tells the browser to send a message to your server and wait for a response. This could happen on, say, a button click. Then, the server can handle the request as usual, interact with the database, whatever, and send the result back to the browser. To the user, however, all they see is that clicking the button takes the action they expect, and that's all that matters.
There are a few ways to go about implementing AJAX in a Rails application. Rails has a few built-in methods to look into, like button_to_remote
in Rails 2 or button_to
with the :remote
option in Rails 3, that can help simplify the process. Or, you can write the AJAX code yourself, and even Googling "AJAX tutorial" would be a good starting point. I'd start with the Rails helpers, though, since they usually make things pretty simple for beginners.
Good luck!
You could use an JS AJAX request to request a backend ERB file, which then accesses the database.
Using AJAX with JS
Using AJAX in jQuery
本文标签: javascriptExecute Ruby on Rails code on button clickStack Overflow
版权声明:本文标题:javascript - Execute Ruby on Rails code on button click - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741295609a2370800.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论