最好的宝石不更新值 - rails 4

时间:2015-07-23 22:05:31

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

所以我在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动作。

欢迎任何见解。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,

似乎错误是更新网址由于命名空间而错误。

我必须做的是包括下面的url参数

<td><%= best_in_place user, :name, url: "users/#{user.id}" %></td>