Rails 3远程表单成功,无需调用控制器操作

时间:2012-01-25 21:35:39

标签: ruby-on-rails ruby-on-rails-3.1 html-form

我有一个包含多个表单的页面,如此

<% arr.each do |obj| %>
    <%= form_tag('/addjobs', :class => "class", :method => "post", :remote => true) do %>
        # Field Tags
        <%= submit_tag("add!") %>
    <% end %>   
<% end %>

我的“主”控制器中的一个动作叫做addjobs,看起来像这样

def addjobs
   puts "adding jobs"
end

我的路线都匹配了。

match '/addjobs' => 'main#addjobs'

我还对每个表单都有jquery绑定,使得表单在ajax成功时消失。当我点击其中任何一个的提交按钮时,表单消失(ajax成功),其发送的参数出现在我的日志中,但似乎没有调用addjobs(我的服务器日志中没有“添加作业”) )。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

<%= form_tag url_for(:controller => 'main', :action => :addjobs), :remote => true do %>
    #field tags
<% end %>

:remote =&gt; true选项使Rails使用AJAX动态提交请求,在'controller_name'控制器中调用:valider方法。

答案 1 :(得分:-1)

puts在控制台中打印,而不是在服务器日志中打印

使用logger.info在服务器日志中打印(取决于您环境中的日志级别)