RoR
中提供了一些方法来简化
Ajax
的使用。
1.
Javascript_include_tag
这是一个引入
javascript
文件的方法
,
如果使用
<%=javascript_include_tag(:defaults)%>
那么将引入
controls.js,dragdrop.js,effects.js,prototype.js
这四个
js
文件。使用
<%=javascript_include_tag(“common”)%>
将引入在
public/javascripts/
下的
common.js
文件。
2.
link_to_remote
这是一个很方便使用的方法,它可以返回一段
html
代码段然后更新一个区域。例子:
<%=
link_to_remote
(
"
编辑
"
,
:update
=>
"type"
,
:url
=>{
:controller
=>
"types"
,
:action
=>
"edit"
,
:id
=>type.id}%>
<div id=”type”>
</div>
:update
对应的值就是要更新的区域,
: controller
对应的是控制类,
:action
对应的是执行控制类中的那个方法。
:id
是要传入的参数。
也可以用回掉方法来接受返回回来的
html
代码或者是
xml.
例子:
<%=
link_to_remote
(
"
编辑
"
,
:url
=>{
:action
=>
"edit"
,
:id
=>submodule.id},
:complete
=>
"showEditModuleDialog(request)"
)%>
function
showEditModuleDialog
(request){
alert(request.responseText);
alert(request.responseXML);
}
3.
form_remote_tag
这个方法可以使你提交一个
form
而不用提交整个页面。例子:
<%=form_remote_tag(
:update
=>
"bugsetting"
,
:url
=>{
:controller
=>
"systems"
,
:action
=>
"create"
})%>
<table>
<tr>
<td>
操作系统名称
:
</td>
<td>
<%= text_field 'system', 'name' %></td>
</tr>
<tr>
<td>
错误等级说明
:
</td>
<td>
<%= text_field 'system', 'description' %></td>
</tr>
<tr>
<td
colspan
="2">
<input
type
="submit" value="
保存
"
/>
</td>
</tr>
</table>
<%= end_form_tag %>
这边参数的使用和
link_to_remote
的使用是一样的。