所以我在rails 4环境中安装了最好的gem并正确初始化它。 (我可以点击名称字段,该框变得可编辑)。
我的admin_namespaced用户控制器
中包含此代码class Admin::UsersController < Admin::BaseController
def index
@users = User.all
# @columns = User.column_names
end
def show
@user = User.find(params[:id])
end
def update
@user = User.find params[:id]
respond_to do |format|
if @user.update_attributes(user_params)
format.html { redirect_to(user, :notice => 'User was successfully updated.') }
format.json { respond_with_bip(@user) }
else
format.html { render :action => "index" }
format.json { respond_with_bip(@user) }
end
end
end
private
def user_params
params.require(:user).permit(:name,:email,:password,:password_confirmation)
end
end
基本上我想将它与我成功设置的rails datatables gem结合使用,以内联编辑相应的字段。
这是我的用户索引视图中的html.erb代码
<% provide(:title, 'All users') %>
<h1>All users</h1>
<%= link_to "Back", admin_path %>
<table class="display responsive no-wrap text-center" id="usertableadmin">
<thead>
<tr>
<th>id</th>
<th>Username</th>
<th>Email</th>
<th>Activated?</th>
<th>Admin?</th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= user.id %></td>
<td><%= best_in_place user, :name%></td>
<td><%= user.email %></td>
<td><%= user.activated %></td>
<td><%= user.admin %></td>
</tr>
<% end %>
</tbody>
</table>
这是html代码在具有best_in_place初始化的标记上的样子。
<span data-bip-type="input" data-bip-attribute="name" data-bip-object="user" data-bip-original-content="Example User" data-bip-url="/users/1" data-bip-value="Example User" class="best_in_place" id="best_in_place_user_1_name">Example User</span>
我不确定,但由于某种原因,这些字段没有更新。当我点击更改名称时,它将恢复为上一个名称。
我不知道它是否因为我有一个命名空间,admin / users或者因为它的索引操作而不是show动作。
欢迎任何见解。
答案 0 :(得分:0)
我找到了解决方案,
似乎错误是更新网址由于命名空间而错误。
我必须做的是包括下面的url参数
<td><%= best_in_place user, :name, url: "users/#{user.id}" %></td>