我的应用程序在两个不同的数据库上运行,我使用应用程序逻辑来处理它们。
我在外部数据库上有用户模型,我只在 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
但它甚至没有在控制器中调用我的更新方法。 它通常会检查集合标记,允许我更改它,但它不允许我提交。
我做错了什么?
修改
我的浏览器没有收到任何请求。
答案 0 :(得分: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)
。
答案 1 :(得分:0)
我终于找到了错误。
https://github.com/bernat/best_in_place/issues/217
这个版本的best_in_place是一个Jquery问题。运行:
bundle update
并重新启动服务器解决问题,谢谢大家