Den*_*ive 7 ruby ruby-on-rails ruby-on-rails-3
什么是使这个实际上异步发布的正确咒语?
form_tag :controller => :magic, :action => :search, :method => post, :remote => true do
Run Code Online (Sandbox Code Playgroud)
method = post和remote = true只是在url的末尾被压扁而不是实际上使它成为ajax帖子.
小智 15
我发现这样做的唯一方法是将url参数包装在url_for方法中.
form_tag url_for(:action => :create, :id => @artist.id), :remote => true do
Run Code Online (Sandbox Code Playgroud)
但是,如果需要传递method参数,则可能需要将其包装在括号中.
ada*_*mar 10
这就是你需要的:
form_tag( { :controller => :magic, :action => :search, :method => post }, { :remote => true } ) do ....
Run Code Online (Sandbox Code Playgroud)
它的设计很糟糕,但Rails form_tag方法需要两个哈希值 - url_for选项哈希值和常规选项哈希值.这给许多Rails程序员带来了很多困惑.如果不添加描述散列边界,则所有选项都会传递给url_for(),从而破坏了:remote => true.
这将添加data-remote="true"到您的表单(与其他人提到的不显眼的javascript一起使用).从那里你需要创建适当的AJAX绑定来执行请求.
虽然你应该使用命名路由magic_search_path而不是控制器/动作参数.
| 归档时间: |
|
| 查看次数: |
12288 次 |
| 最近记录: |