使用best_in_place gem

时间:2011-12-13 23:54:23

标签: jquery rubygems ruby-on-rails-3.1

我正在尝试使用best_in_place gem但它似乎不起作用。我按照railscast教程,但现在好运。当我说它不起作用时,我的意思是没有选项可以在屏幕上编辑任何内容。以默认的rails方式显示。

文章/ show.html.erb

<p id="notice"><%= notice %></p>

<p>
  <b>
    <%= best_in_place @post, :title %>
  </b>
</p>

<p>
  <%= best_in_place @post ,:content, :type => :text_area %>
</p>

<p>
  <b>Featured:</b>
  <%= best_in_place @post , :featured, :type => :check_box %>
</p>


<%= link_to 'Edit', edit_post_path(@post) %> |
<%= link_to 'Back', posts_path %>

posts.js.coffee

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

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

的application.js

// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require jquery.purr
//= require best_in_place
//= require_tree 

的Gemfile

source 'http://rubygems.org'

gem 'best_in_place'
gem 'rails', '3.1.3'

gem 'pg'
gem "paperclip"

group :assets do
  gem 'sass-rails',   '~> 3.1.5'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :test do
  # Pretty printed test output
  gem 'turn', '0.8.2', :require => false
end

3 个答案:

答案 0 :(得分:1)

我一直在寻找Rails中类似问题的解决方案。我在Rails 3.1 Assets - Strange Serving in Development

中找到了一些答案

这对我很有用。

答案 1 :(得分:1)

你能告诉我们你的posts_controller.rb吗?确保它responseds_to:json,更具体地说,确保Update操作为json指定了respond_with_bip(@post)。

如果没有显示任何内容,请尝试在模型post.rb中设置默认值:

before_create :default_values

  private

    def default_values
      self.post ||= "Write Post Here"
    end

答案 2 :(得分:1)

删除:posts.js.coffee

posts/show.html.erb代码下方添加以下内容:

$(document).ready(function() {
  /* Activating Best In Place */
  jQuery(".best_in_place").best_in_place();
});