Rails 3 form_for ajax调用

时间:2011-01-25 07:57:56

标签: ruby-on-rails ajax action form-for

我的控制器中有方法:

def work_here
 @company = Company.find(params[:id])
 current_user.work_apply(current_user, @company)
 redirect_to company_path
end

在我看来:

<%= render 'companies/work_form' if signed_in? %>

_work_form.html.erb:

<%= form_for company, :remote => true, :url => { :controller => "companies", :action => "work_here" } do |f| %>
<%= f.hidden_field :id, :value => company.id %>
<%= f.submit "I working here" %>

&lt;%end%&gt;

我有一个work_here.js.erb文件:

$("#work_at_form").html("<%= escape_javascript("render('companies/works')") %>")

但是我的表单没有ajax请求(在其他页面中ajax forks很好),我的js.erb文件永远不会使用。 任何人都可以给我建议吗? 感谢。

1 个答案:

答案 0 :(得分:5)

无法读取work_here.js.erb,因为您从未调用它。总是重定向。请求为js格式时呈现它。

def work_here
 @company = Company.find(params[:id])
 current_user.work_apply(current_user, @company)
 respond_to do |format|
   format.html { redirect_to company_path }
   format.js { render }
 end
end