带有collection_select的rails中的ajax

时间:2013-08-23 13:37:56

标签: ruby-on-rails ruby-on-rails-3.2

H大家我尝试使用ajax更改collection_select时执行的咨询请求刷新此div #my_id4

我在视图中选择了像这样的javascript ...

 =collection_select(:department, :id, Department.all, :id, :name, options={:prompt=>"Seleccione departamento"})

这是javascript代码

:javascript
  $(document).ready(function(){
  $('#department_id').change(function(){
    $.ajax({
      url:"movements/find_by_department",
      type: "GET",
      data: { valor: $('#department_id').val() }
    });
  });
  })

在我的路由器中我有这个...

resources :movements do
  get 'find_by_department'
end

在我的控制器中我有这个

  def find_by_department
    @ideas_department = Idea.find_by_department_id(params[:valor])

    respond_to do |format|
      format.js {render  :action => :department_chart}
    end
  end

在视图department_chart.js.erb中我有这个。

$( “#my_id4”)。HTML( “改变!!!”)

但是当我执行应用程序时,我得到了这个..

Request URL:http://localhost:3000/movements/find_by_department?valor=5
Request Method:GET
Status Code:302 Found
Request Headersview source

并且空洞的回应!就像不执行该方法一样。

任何想法!!!

日志就是这个

Started GET "/movements/find_by_department?valor=6" for 127.0.0.1 at 2013-08-23 14:46:28 +0100
Processing by MovementsController#show as */*
  Parameters: {"valor"=>"6", "id"=>"find_by_department"}
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 10 LIMIT 1
  Option Load (0.2ms)  SELECT "options".* FROM "options" WHERE "options"."name" = 'ideas_status_updated_date' LIMIT 1
Se ha consultado permiso para admin::movements::show
Redirected to http://localhost:3000/movements
Filter chain halted as :permission_check rendered or redirected
Completed 302 Found in 4ms (ActiveRecord: 0.5ms)


Started GET "/movements" for 127.0.0.1 at 2013-08-23 14:46:28 +0100
Processing by MovementsController#index as */*
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 10 LIMIT 1
  Option Load (0.2ms)  SELECT "options".* FROM "options" WHERE "options"."name" = 'ideas_status_updated_date' LIMIT 1
Se ha consultado permiso para admin::movements::index
  Company Load (0.2ms)  SELECT "companies".* FROM "companies" WHERE "companies"."id" = 4 LIMIT 1
  Movement Load (0.5ms)  SELECT "movements".* FROM "movements" INNER JOIN "ideas" ON "movements"."idea_id" = "ideas"."id" INNER JOIN "departments" ON "ideas"."department_id" = "departments"."id" WHERE "departments"."company_id" = 4
  Department Load (0.3ms)  SELECT "departments".* FROM "departments" 
  Rendered movements/index.html.haml within layouts/logged (5.2ms)

1 个答案:

答案 0 :(得分:1)

在日志中:

Se ha consultado permiso para admin::movements::show
Redirected to http://localhost:3000/movements
Filter chain halted as :permission_check rendered or redirected

对于发出导致重定向的请求的用户来说,似乎存在权限失败。