0

我的应用程序在两个不同的数据库上运行,我使用应用程序逻辑来处理它们。

我在外部数据库上有用户模型,我只在我的default_role 类上记录了id

因此,在索引模板中,我从远程获取帐户,对于每个帐户,我都必须查询我的表以打印一些不可变的信息,并且我想提供在我的表中更改角色的可能性

索引信息=远程表信息(姓名ecc)+我的表信息(角色)

使用 best_in_place 编辑我的用户的 role_id 字段。

问题是我的索引周期@operators 来自外部购买我需要改变我身边的角色!

- @operators.each do |ope|   #cycle users
      %tr
        %td
          - user = User.find_by_bay_id(ope.account_id)
          - df = DefaultRole.find_by_operator_id(user.id)
          = best_in_place [:admin, df], :role_id, :type => :select, :collection => [[1, 'admin'], [2, 'coordinator'], [3, 'operator'], [4, 'base']]

和我在控制器中的更新:

respond_to :html, :json

def index
  @operators = some logic from model where I get all the users
end

def update
  @df = DefaultRole.find(params[:id])
  @df.update_attributes(params[:default_role])
  respond_with [:admin, @df]
end

但它甚至没有在控制器中调用我的更新方法。它通常会检查集合标签,允许我更改它,但不允许我提交。

我究竟做错了什么?

编辑

我的浏览器没有收到任何请求。

4

2 回答 2

0

Best_in_place gem 使用 JSON 调用来更新内容。在这种情况下,您应该respond_to json在控制器中有声明,如下所示:

def update
 @df = DefaultRole.find(params[:id])
respond_to do |format|
  if @df.update_attributes(params[:default_role])
    format.html { redirect_to root_path, notice: 'Role was successfully updated.' }
    format.json { head :no_content }
  else
    format.html { render action: "edit" }
    format.json { render json: @df.errors, status: :unprocessable_entity }
  end 
end

我觉得在你的视图中包含变量规范很奇怪,它们属于控制器(- user = User.find_by_bay_id(ope.account_id) - df = DefaultRole.find_by_operator_id(user.id).

于 2013-01-24T10:40:05.570 回答
0

我终于找到了错误。

https://github.com/bernat/best_in_place/issues/217

这是那个版本的 best_in_place 上的 Jquery 问题。跑步:

bundle update

并重新启动服务器解决问题,谢谢大家

于 2013-01-24T16:20:21.873 回答