2011-12-29 45 views
2

我正在學習Rails,並且已經將一個項目從Rails 2更新到Rails 3.1.1。該應用程序使用tinymce允許管理員編輯網站內容的多個部分。在我們升級的項目,當我點擊這個編輯鏈接的結果是tinymce未初始化的常量AppConfig在rails 3.1中?

Routing Error 
ActionController::RoutingError (uninitialized constant Admin::ContentController::AppConfig): 
app/controllers/admin/content_controller.rb:4:in `<class:ContentController>' 
app/controllers/admin/content_controller.rb:1:in `<top (required)>' 

我已搜查所有在互聯網上尋求幫助,但這個是不幸的一個變量我猜有些通用名稱?該項目正在使用gem,tinymce-rails,我認爲這是rails 3.1的正確選擇。我在這裏試圖找到的所有內容都是根本問題,所以我知道應用程序的哪部分需要更新,因此至少要加載該頁面,即使之後還有更多問題需要修復...

我覈實了所有的步驟,從https://github.com/sandipransing/rails_tiny_mce#readme似乎可以實現(儘管說軌3.0,所以我也看了過來https://github.com/spohlenz/tinymce-rails)......下面是內容控制器拋出錯誤代碼:

class Admin::ContentController < ApplicationController 
before_filter :require_admin_login 

uses_tiny_mce(:options => AppConfig.freysmile_options, :only => [:referral_center, :great_review_tips, :faq, :badge_assignment_mail, :point_assignment_mail, :add_referral_mail, :patient_invitation_mail]) 

該項目似乎在gemfile和plugins文件夾中都有tinymce-rails - 它也具有所有列在第一個github鏈接上所需的插件。 (附註:不幸的是,這是一個由其他人制作的網站,給了我們的諮詢老闆,他不是與原始創作者合作的,現在我的未婚妻和我正在通過更新這種方式來學習,所以它的構建方式我可能不會離開,但我們沒有時間完成重做。)感謝您閱讀我的問題!

回答

1

uses_tiny_mce方法來自與rails> 3.1不兼容的另一個gem。您想從任何控制器中刪除該方法,並按照tinymce-rails自述文件中的說明進行操作。 tinymce-rails gem只需在rails-3.1 +中將tinymce javascript添加到您的資產管道中。

我不知道AppConfig.freysmile_options來自哪裏。在您的應用中搜索'freysmile'。

這裏是我如何使用TinyMCE的護欄用3.1.3應用:

的Gemfile:

gem 'tinymce-rails' 

的application.js

//= require tinymce-jquery 

的意見/共享/ _mce.html .erb

<div id="form_content"> 
    <h3><%= f.label :content %></h3> 
    <%= f.text_area :content, :cols => '100', :rows => '50', :class => 'mce' %> 
</div> 

<script type="text/javascript"> 
    $(function() { 
    $('.mce').tinymce({ 
     width: 1000, 
     theme: 'advanced', 
     theme_advanced_toolbar_location: 'top', 
     theme_advanced_buttons1: 'bold, italic, underline, strikethrough, justifyleft, justifycenter, justifyright, justifyfull, bullist, numlist, outdent, indent, cut, copy, paste, undo, redo, link, unlink, image, cleanup, code, removeformat, help', 
     theme_advanced_buttons2: 'formatselect, fontselect, fontsizeselect, styleselect, hr, sub, sup, forecolor, backcolor, forecolorpicker, backcolorpicker, charmap, visualaid, anchor blockquote', 
     theme_advanced_buttons3: '' 
    }); 
    }); 
</script> 

形式:

<%= render :partial => 'shared/mce', :locals => {:f => f} %> 

我只在名爲「content」的列上使用tinymce。如果你的專欄有不同的名字,你將不得不調整你的部分當地人來適應。

也許有更好的方法來自定義按鈕和佈局,而無需修改寶石,但這對我來說已經足夠好了。

+1

非常感謝。註釋掉控制器中的行允許加載頁面,現在我意識到tinymce-rails自述文件在控制器中甚至沒有任何內容。現在,我能夠在編輯器應該如何渲染方面取得進展。在我從rails 2升級到3的過程中,我沒有看到關於這個功能改變的任何信息。我認爲這會是一件不好的事情,但希望這個問題能在稍後的時間裏拯救一些其他可憐的靈魂。 :) – 2011-12-29 22:01:01

相關問題