现场编辑

时间:2015-06-13 05:39:24

标签: ruby-on-rails best-in-place

我按照http://railscasts.com/episodes/302-in-place-editing?view=asciicast

执行了所有步骤

但它没有在属性处编辑?

这是我的页面

<div class="well-lg box-left box-first">
  <div class="row">
    <h3>Personal Details</h3>
    <br>
    <ul class="list-group">
    <li><strong><div class="col-sm-4">FName </div></strong>
      <%= best_in_place @user, :fname %></li>
    <li><strong><div class="col-sm-4">LName </div></strong>
      <%=  best_in_place @user, :lname %></li>
    <li><strong><div class="col-sm-4">Email </div></strong>
      <%=  best_in_place @user, :email %></li>
    <li><strong><div class="col-sm-4">Mobile </div></strong>
      <%=  best_in_place @user, :mob %></li>
    </ul><br><%= link_to 'Edit', {:controller=>'users', :action=>'edit'}%>
  </div>
</div>

任何帮助或解决方案? 提前致谢

修改

的application.js

//= require jquery
//= require jquery_ujs
//= require jquery.purr
//= require best_in_place
//= require turbolinks
//= require_tree .

user.js.coffee

 jQuery ->
 $('.best_in_place').best_in_place();

3 个答案:

答案 0 :(得分:1)

Best_in_placeRails 4不完全兼容,您可以尝试使用以下宝石,看看它们是否有效。

https://github.com/bootstrap-ruby/bootstrap-editable-rails

https://github.com/janv/rest_in_place

答案 1 :(得分:0)

将帮助器放在HTML

中是不够的

您还需要在控制器中使用正确的代码

您的控制器代码应如下所示(json响应)

def update
  @user = User.find params[:id]

  respond_to do |format|
    if @user.update_attributes(params[:user])
      format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
      format.json { respond_with_bip(@user) }
    else
      format.html { render :action => "edit" }
      format.json { respond_with_bip(@user) }
    end
  end
end

对于帮助者,不确定默认情况下是否这样做,请尝试添加as: :input

https://github.com/bernat/best_in_place

答案 2 :(得分:0)

尽管documentation中的所有内容都是一目了然的,但根据您的要求,以下是我使用它的方式:

<强>的application.js

//= require jquery-editable

<强> application.css

*= require jquery-editable

查看

<a href="javscript:void(0)" id="some_id">

<强>的javascript

jQuery.fn.editable.defaults.mode = 'inline';
jQuery.fn.editable.defaults.ajaxOptions = {type: "PUT"};

jQuery("#some_id").editable({
  type: "text",
  pk: "1",  //This is id of the record which will be updated
  url: url  //The rails URL for controller method
});

不过,我建议您仔细阅读文档,以便更好地理解和更顺畅地实施。