中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
ActiveScaffold本地化
ActiveScaffold  真是優(yōu)秀的一款ROR插件,其中的live_search支持中文,這點(diǎn)很酷。。。下午用了一會(huì)時(shí)間實(shí)現(xiàn)了ActiveScaffold加localization插件中文化Rails應(yīng)用。關(guān)于localization插件的安裝和使用,請(qǐng)參考下面文章
[url]http://blackanger.blog.51cto.com/140924/28824[/url]
值得注意的是,active_scaffold允許你整合自己喜歡的本地化插件,localization只是其中之一。
1。ActiveScaffold提供了整合國(guó)際化插件的接口,在application.rb中,底部,寫(xiě)入:
class Object
  def as_(string, *args)
    _(string,*args)
  end
end
2。工程根目錄下新建lang目錄,建立de_ZH.rb文件:
Localization.define('de_ZH') do |l|
l.store "Reset", "重置"
l.store "Search","搜索"
l.store "Create New","新建"
l.store "Users","用戶"
..... ........
end
3。還是application.rb中:
Localization.lang = 'de_ZH'
 4。environment.rb中:
Rails::Initializer.run do |config|
    config.plugins = ['localization']
    Dir.entries("#{RAILS_ROOT}/vendor/plugins/").each { |dir| 
   config.plugins.push("#{dir}") if(File.directory?("#{RAILS_ROOT}/vendor/plugins/#{dir}/lib")  orFile.exist?("#{RAILS_ROOT}/vendor/plugins/#{dir}/init.rb")) 
  }
end
啟動(dòng)服務(wù)器。。。OK!
http://blackanger.blog.51cto.com/140924/40548

activescaffold+rails2.3.4+本地化 記錄

這兩天把原有一個(gè)項(xiàng)目從rails 2.2.2升級(jí)到了rails 2.3.4,在activescaffold插件上耗費(fèi)了許多時(shí)間,但總算都解決了。
1.升級(jí)activescaffold
  首先要說(shuō)明的是AS的官網(wǎng)很是詭異。里面的文檔幾乎不更新,反而github wiki上才是最新的。所以大家不要找錯(cuò)地方了。
   按照文檔,升級(jí)AS到2.3版本需要以下兩步:
   1). ruby script/plugin install git://github.com/activescaffold/active_scaffold.git
   2). ruby script/plugin install git://github.com/ewildgoose/render_component.git -r rails-2.3

  但是注意: 第二步安裝的render_component插件在rails 2.3.4上并不能使用。啟動(dòng)時(shí)會(huì)出現(xiàn) 無(wú)效的方法"set_session_options"的錯(cuò)誤。我最后是在github上找了另一個(gè)render_component插件才好的。在這里浪費(fèi)了我至少2個(gè)小時(shí)。

   2). ruby script/plugin install git://github.com/weplay/render_component.git

2.中文化

  原來(lái)我使用的是localization插件。并在Object類(lèi)中加入了as_()方法來(lái)實(shí)現(xiàn)中文化??墒谴瞬寮趓ails 2.3.4中也會(huì)報(bào)錯(cuò)。于是我就直接采用rails自帶的I18n國(guó)際化方法。當(dāng)然還是需要加入as_()方法.代碼如下

 

Ruby代碼  
  1. class Object  
  2.   def as_(string, *args)  
  3.     if string  
  4.       r = I18n.t(string,*args)  
  5.       if (r =~ /^translation missing/)  
  6.         return string  
  7.       end  
  8.       return r  
  9.     else  
  10.       return string  
  11.     end  
  12.   rescue  
  13.     return string  
  14.   end  
  15. end 

   附上翻譯文件:


rails 2.3.2 解惑(持續(xù)更新中)

1.在app\view\layouts如果有兩個(gè)以application.html.erb開(kāi)頭的文件,比如

application.html.erb, application.html.erb.bak

rails 2.3.2會(huì)因無(wú)法確定而都不引用.


2.舊代碼若遷移到2.3.2,會(huì)出現(xiàn)找不到application controller.

其實(shí)不是不見(jiàn)了,而是默認(rèn)會(huì)去尋找application_controller.rb.

所以把a(bǔ)pp\controller下的application.rb改名為application_controller.rb即可.

3.在2.0.2版本上,render 'layout\some_layout'是可以運(yùn)行的,
但在2.3.2要改成 render :file=> 'layout\some_layout'

http://sinkzephyr.iteye.com/blog/412740


環(huán)境:Ruby 1.9.1+Rails2.3.2+ActiveScaffold 1.2RC1,錯(cuò)誤提示:

Encoding::CompatibilityError

incompatible character encodings: ASCII-8BIT and UTF-8

 

這個(gè)問(wèn)題會(huì)有兩種情況導(dǎo)致:

1、問(wèn)題環(huán)境:模板中有<%="漢字"%>,且有UTF-8的字串變量,如I18n.t(:hello)返回的是UTF-8串。

      問(wèn)題所在:Ruby 1.9.1的ERB處理編碼的方式,看代碼erb.rb

 

def compile(s)
      enc = s.encoding
      raise ArgumentError, "#{enc} is not ASCII compatible" if enc.dummy?
      s = s.dup.force_encoding("ASCII-8BIT") # don't use constant Enoding::ASCII_8BIT for miniruby
      enc = detect_magic_comment(s) || enc

.....

 

這樣,s的編碼是"ASCII-8BIT",模板就是ASCII-8BIT編碼,當(dāng)有UTF-8的字串變量concat時(shí),出錯(cuò)。

      解決方案:在 enc = detect_magic_comment(s) || enc 后添加一行 s.force_encoding(enc)

2、問(wèn)題環(huán)境:數(shù)據(jù)庫(kù)返回UTF-8的數(shù)據(jù)時(shí),ActiveScaffold的列表以及查看出錯(cuò)。

      問(wèn)題所在:ActiveRecord返回的數(shù)據(jù),編碼成了ASCII-8BIT,看代碼list_column_helps.rb,

def format_value(column_value, options = {})
        if column_empty?(column_value)
          active_scaffold_config.list.empty_field_text
        elsif column_value.is_a?(Time) || column_value.is_a?(Date)
          l(column_value, :format => options[:format] || :default)
        else
          column_value.to_s
        end
      end

我查到這里返回的值就是ASCII-8BIT編碼了。查了下,從mysql_adapater出來(lái)的數(shù)據(jù)就是ASCII-8BIT的。

     解決方案:大家給點(diǎn)建議吧,SET NAME無(wú)效、database.yml的encoding無(wú)效。我最后是修改mysql_adapter

 

    def select(sql, name = nil)
          @connection.query_with_result = true
          result = execute(sql, name)
          rows = result.all_hashes
          result.free

 

#以下為新加部分

 

          if @config[:encoding] && @config[:encoding]=="utf8"
            rows.each do |row|
              row.each do |key, value|
                if (value.class == String)
                  value.force_encoding("UTF-8")
                end
              end
            end
          end
#以上為新加部分
          rows
        end

http://www.iteye.com/topic/355909




最主要的提示是說(shuō):

Ruby代碼  
  1. uninitialized constant ApplicationController  
  2. c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:443:in `load_missing_constant'  
  3. c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:80:in `const_missing'  
  4. c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:92:in `const_missing'  
  5. F:/ROR_SPACE/edepot/app/controllers/store_controller.rb:9  


而去store_controller.rb去看

Ruby代碼  
  1. class StoreController < ApplicationController  

也就是說(shuō)找不到application.rb的定義,而當(dāng)前的文件又確實(shí)有application.rb的定義。問(wèn)題在那里呢?

原來(lái)是rails升級(jí)以后,application.rb默認(rèn)文件名改了。這或者是“約定高于配置”的另一面,有人改了約定,我們還不太清楚。那么好吧,我把a(bǔ)pplication.rb的文件名改成application_controller.rb。
接著想要運(yùn)行,或者,還有一些東西要改cnfig/boot.rb里,那個(gè)典型的require_gem問(wèn)題。

Ruby代碼  
  1. else  
  2.   gem "rails"  
  3.   #require_gem "rails"  
  4.   require 'initializer'  


然后,運(yùn)行時(shí)有點(diǎn)升級(jí)

Ruby代碼  
  1. F:\ROR_SPACE\depot_l>rake db:migrate  
  2. (in F:/ROR_SPACE/depot_l)  
  3. rake aborted!  
  4. undefined method `require_gem' for main:Object  
  5. F:/ROR_SPACE/depot_l/rakefile:4  
  6. (See full trace by running task with --trace)  
  7.   
  8. F:\ROR_SPACE\depot_l>rake db:migrate  
  9. (in F:/ROR_SPACE/depot_l)  
  10. Your config/boot.rb is outdated: Run "rake rails:update".  
  11.   
  12. F:\ROR_SPACE\depot_l>rake rails:update  
  13. (in F:/ROR_SPACE/depot_l)  
  14. install -c -m 0755 c:/ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/tasks/../../bin/dbconsole script/dbconsole  
  15. F:/ROR_SPACE/depot_l/app/controllers/application.rb has been renamed to F:/ROR_SPACE/depot_l/app/controllers/application_controller.rb, update your SCM as necessary  

這段說(shuō)明也表明,文件名改了。

Html代碼  
  1. uninitialized constant FileColumn::ClassMethods::Inflector  


如果你還有classic_paginate

那么,請(qǐng)記著也要改這個(gè)

Ruby代碼  
  1. options[:singular_name] ||= ActiveSupport::Inflector.singularize(collection_id.to_s)     
  2. options[:class_name]  ||= ActiveSupport::Inflector.camelize(options[:singular_name])     
  3. #      options[:singular_name] ||= Inflector.singularize(collection_id.to_s)     
  4. #      options[:class_name]  ||= Inflector.camelize(options[:singular_name])    
分享到:  
評(píng)論
11 樓utensil2009-04-15  引用
robbin 寫(xiě)道
每次升級(jí)Rails都有點(diǎn)心驚肉跳的,不單純是這些不兼容的文件修改,而是很多不實(shí)際上線運(yùn)行發(fā)現(xiàn)不了的新問(wèn)題。


Robbin何不依據(jù)自己對(duì)Rails的修改,在Github上做一個(gè)兼容性和穩(wěn)定性更好的fork?這樣不僅方便大家,而且可以方便地pull回Rails。

10 樓richyzhang2009-03-25  引用
rainux 寫(xiě)道
yangzhihuan 寫(xiě)道
rainux 寫(xiě)道
yangzhihuan 寫(xiě)道
我的解決方法是:
新建一個(gè)Rails 2.3.2的工程,把boot.rb文件拷貝過(guò)去舊工程中.
然后執(zhí)行一下 rake rails:update
基本上就搞定了.


沒(méi)有必要?jiǎng)?chuàng)建一個(gè)新工程吧,直接在 config/environment.rb 里把 Rails 版本號(hào)改成 2.3.2 之后執(zhí)行 rake rails:update 即可更新所有的文件,包括 application.rb 自動(dòng)改名。


我一開(kāi)始就是這樣干的,但是執(zhí)行rake的時(shí)候會(huì)提示 boot.rb 有錯(cuò)的.


我從 Rails 2.2.2 升級(jí)上來(lái)的,沒(méi)有問(wèn)題??赡苁且?yàn)槟阍瓉?lái)的 Rails 版本比較老。


用自動(dòng)升級(jí)應(yīng)該跟mysql類(lèi)似,就是一個(gè)版本一個(gè)版本的upgrade,這樣的話麻煩會(huì)少很多.
9 樓rainux2009-03-25  引用
yangzhihuan 寫(xiě)道
rainux 寫(xiě)道
yangzhihuan 寫(xiě)道
我的解決方法是:
新建一個(gè)Rails 2.3.2的工程,把boot.rb文件拷貝過(guò)去舊工程中.
然后執(zhí)行一下 rake rails:update
基本上就搞定了.


沒(méi)有必要?jiǎng)?chuàng)建一個(gè)新工程吧,直接在 config/environment.rb 里把 Rails 版本號(hào)改成 2.3.2 之后執(zhí)行 rake rails:update 即可更新所有的文件,包括 application.rb 自動(dòng)改名。


我一開(kāi)始就是這樣干的,但是執(zhí)行rake的時(shí)候會(huì)提示 boot.rb 有錯(cuò)的.


我從 Rails 2.2.2 升級(jí)上來(lái)的,沒(méi)有問(wèn)題??赡苁且?yàn)槟阍瓉?lái)的 Rails 版本比較老。
8 樓yangzhihuan2009-03-25  引用
rainux 寫(xiě)道
yangzhihuan 寫(xiě)道
我的解決方法是:
新建一個(gè)Rails 2.3.2的工程,把boot.rb文件拷貝過(guò)去舊工程中.
然后執(zhí)行一下 rake rails:update
基本上就搞定了.


沒(méi)有必要?jiǎng)?chuàng)建一個(gè)新工程吧,直接在 config/environment.rb 里把 Rails 版本號(hào)改成 2.3.2 之后執(zhí)行 rake rails:update 即可更新所有的文件,包括 application.rb 自動(dòng)改名。


我一開(kāi)始就是這樣干的,但是執(zhí)行rake的時(shí)候會(huì)提示 boot.rb 有錯(cuò)的.
7 樓yehs2202009-03-24  引用
QuakeWang 寫(xiě)道

另外還有一些小改動(dòng),比如將原先自己寫(xiě)的對(duì)rails動(dòng)態(tài)內(nèi)容輸出做gzip壓縮,現(xiàn)在可以遷移到rack,用現(xiàn)成的:
Ruby代碼  
  1. config.middleware.use Rack::Deflater  


怎么樣跳過(guò)Deflator?比如動(dòng)態(tài)生成的圖片什么的。
6 樓rainux2009-03-24  引用
yangzhihuan 寫(xiě)道
我的解決方法是:
新建一個(gè)Rails 2.3.2的工程,把boot.rb文件拷貝過(guò)去舊工程中.
然后執(zhí)行一下 rake rails:update
基本上就搞定了.


沒(méi)有必要?jiǎng)?chuàng)建一個(gè)新工程吧,直接在 config/environment.rb 里把 Rails 版本號(hào)改成 2.3.2 之后執(zhí)行 rake rails:update 即可更新所有的文件,包括 application.rb 自動(dòng)改名。
5 樓lgn21st2009-03-22  引用
我手上的項(xiàng)目也剛剛從2.2.2升級(jí)到2.3.2,發(fā)現(xiàn)幾個(gè)稍微復(fù)雜一點(diǎn)的關(guān)聯(lián)模型上定義的named_scope執(zhí)行時(shí)報(bào)SQL語(yǔ)法錯(cuò)誤,花了點(diǎn)時(shí)間沒(méi)有看出問(wèn)題到底在那里,只能放到明天繼續(xù)排查原因...
可能是原來(lái)在2.2.2上通過(guò)但是這么用不對(duì)
或者是2.3.2有bug,希望是前者...
4 樓yangzhihuan2009-03-22  引用
我的解決方法是:
新建一個(gè)Rails 2.3.2的工程,把boot.rb文件拷貝過(guò)去舊工程中.
然后執(zhí)行一下 rake rails:update
基本上就搞定了.
3 樓wosmvp2009-03-21  引用
JavaEye果然夠激進(jìn) 
2 樓QuakeWang2009-03-21  引用
在遷移JavaEye代碼到2.3,已經(jīng)遇到3個(gè)問(wèn)題了:
1. Cache Sweeper不能正常的auto load,這個(gè)ticket號(hào)稱(chēng)已經(jīng)解決,但是還有很多人報(bào)告有問(wèn)題:
http://rails.lighthouseapp.com/projects/8994/tickets/1977-actioncontrollercachingsweeper-autoloading-is-broken
解決方案是檢查一下你的environment文件中是否有調(diào)用ActionContoller或者ActionRecord的代碼,導(dǎo)致先它在sweeper之前加載了,JavaEye在Rails 2.2.2的代碼有類(lèi)似如下設(shè)置:
Ruby代碼  
  1. ActionController::Base.session_options[:session_domain] = DEFAULT_ROOT_DOMAIN  
  2. ActionController::Base.asset_host = "http://#{DEFAULT_SITE_DOMAIN}"  

改成通過(guò)config設(shè)置就正常了:
Ruby代碼  
  1. config.action_controller.session[:domain] = DEFAULT_ROOT_DOMAIN  
  2. config.action_controller.asset_host = "http://#{DEFAULT_SITE_DOMAIN}"  


2. 新加的Strategy::LocalCache是memory cache的subclass,里面有freeze的代碼:@data[name] = value.freeze,導(dǎo)致memcache store的對(duì)象全部被freeze
零時(shí)解決方案是hack localcache

3. Collection destroy不接受id作為參數(shù)了:
http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/2306-associationcollections-destroy-method-is-not-compatible-with-old-version
解決方案是先查詢,再調(diào)用刪除方法。

另外還有一些小改動(dòng),比如將原先自己寫(xiě)的對(duì)rails動(dòng)態(tài)內(nèi)容輸出做gzip壓縮,現(xiàn)在可以遷移到rack,用現(xiàn)成的:
Ruby代碼  
  1. config.middleware.use Rack::Deflater  


不過(guò)2.3感覺(jué)在開(kāi)發(fā)環(huán)境中比2.2要快很多,和改進(jìn)的lazy load有關(guān),在生產(chǎn)環(huán)境還須再測(cè)試對(duì)比看看。
1 樓robbin2009-03-21  引用
每次升級(jí)Rails都有點(diǎn)心驚肉跳的,不單純是這些不兼容的文件修改,而是很多不實(shí)際上線運(yùn)行發(fā)現(xiàn)不了的新問(wèn)題。

http://hlee.iteye.com/blog/352598

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
redmine在windows上安裝初體驗(yàn)
Gitlab搭建錯(cuò)誤匯總
利用Radrails開(kāi)發(fā)Ruby on Rails程序入門(mén)指南
RubyGems簡(jiǎn)介
puppet-dashboard配置
rails2.02快速體驗(yàn) - rails - Ruby - JavaEye論壇
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服