我想在使用link_to_remote时呈现表单(字段并包含提交按钮) - 表单通过ajax调用显示。
我希望这种形式表现得像任何其他形式(它是一种基本的新活动记录)形式,没什么特别的。
提交后,我希望原始父页面保持静态而不刷新,而不是表单,通知(您的表单已成功提交)。 / p>
当前行为,在提交后,它会重定向整个页面。
我将遥控器放入方法中:
<%= do_event_remote(contact_event, event) %>
这是辅助方法:
def do_event_remote(contact, call_or_email_or_letter)
model_name = call_or_email_or_letter.class.name.tableize.singularize
link_to_remote "#{model_name.camelize}",
:url => send("new_contact_#{model_name}_path",
:contact => contact,
:status => 'done',
:"#{model_name}" => call_or_email_or_letter ),
:update => 'remote_event'
end
谢谢...
答案 0 :(得分:0)
您可以正常创建表单,但在remote_form_for
和form_for
的位置使用remote_form_tag
帮助程序代替form_tag
。这将通过ajax提交表单。
文件:http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html
更新:示例:
在你的表格中(使用haml):
= remote_form_for @customer, :url => customer_path(@customer), :complete => "doSomething(request)" do |f|
%p
First Name<br>
= f.text_field :first_name
%p
Last Name<br>
= f.text_field :last_name
= submit_tag "Update"
对于你的淡入淡出功能,你需要使用scriptaculous或jquery。 Scriptaculous包含rails并且目前是默认的。为此,您的javascript将是这样的:
function doSomething(request){
Effect.fade('some_div');
}
更多关于scriptaculous:http://wiki.github.com/madrobby/scriptaculous/