我正在尝试使用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
答案 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();
});