小编jlf*_*aux的帖子

带有可选范围":locale"的Rails路由

我正在研究Rails 3.1应用程序,我想为应用程序支持的不同语言设置特定路由.

/es/countries
/de/countries
…
Run Code Online (Sandbox Code Playgroud)

对于默认语言('en'),我不希望语​​言环境显示在URL中.

/countries
Run Code Online (Sandbox Code Playgroud)

这是我设定的路线定义.

scope "(:locale)", :locale => /es|de/ do
   resources :countries
end
Run Code Online (Sandbox Code Playgroud)

它很好用,直到我尝试使用带有'en'的路径助手作为语言环境.

在控制台中:

app.countries_path(:locale => 'fr')
 => "/fr/countries" 

app.countries_path(:locale => 'en')
 => "/countries?locale=en" 
Run Code Online (Sandbox Code Playgroud)

我不想要"?locale = en".

有没有办法告诉rails使用'en'语言环境,不应该将语言环境参数添加到url?

谢谢

url-routing ruby-on-rails-3.1

12
推荐指数
2
解决办法
2万
查看次数

Rails:Poltergeist似乎没有找到一个完全有效的幻影

我创建了一个小型的Rails应用程序,用恶作剧和Capybara对我的一个网站的内容进行了核心检查.在我的Mac上,dev中的一切都很好用.但是当我在生产服务器上测试时,我得到了以下服务器.

Capybara :: Poltergeist :: PhantomJSFailed(PhantomJS返回非零退出状态127.确保phantomjs在您的系统上成功运行.您可以通过运行phantomjs应该为您提供Javascript REPL 的命令来测试它.):

Phantomjs的作品.我从命令行测试过它.更令我困惑的是,当我从生产服务器上的rails控制台运行我的方法时,它也可以工作.

任何的想法?

phantomjs ruby-on-rails-3.2 poltergeist

9
推荐指数
1
解决办法
494
查看次数

AngularJS在自定义指令中包含ui-select

我正在尝试将ui-select包装在自定义指令中.(https://github.com/angular-ui/ui-select)

this.adminv2.directive('eventSelect', function() {
    return {
      restrict: 'E',
      replace: true,
      scope: {
        ngModel: '=',
        placeholder: '='
      },
      controller: function($scope, $http) {
        return $scope.refreshEvents = function(searchTerm) {
          return $http.get('/events/autocomplete', {
            params: {
              term: searchTerm
            }
          }).then(function(response) {
            return $scope.events = response.data;
          });
        };
      },
      template: "<div>{{ngModel}}\n  <ui-select ng-model=\"ngModel\"\n             theme=\"bootstrap\"\n             ng-disabled=\"disabled\"\n             reset-search-input=\"false\">\n    <ui-select-match placeholder=\"Enter an event\">{{$select.selected.name}}</ui-select-match>\n    <ui-select-choices repeat=\"event in events track by $index\"\n             refresh=\"refreshEvents($select.search)\"\n             refresh-delay=\"0\">\n      <span ng-bind-html=\"event.name | highlight: $select.search\"></span>\n      <i class=\"icon-uniF111 fg type-{{raceType}} pull-right\" ng-repeat='raceType in event.racetypes'></i>\n      <br>\n      {{event.dates}} …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

7
推荐指数
1
解决办法
2037
查看次数

在Mac OS X上用sed替换Leopard没有达到预期的效果

我试图用'(引用)替换\"(反斜杠双引号)使用sed.

sed "s/\\\"/\'/g" file.txt
Run Code Online (Sandbox Code Playgroud)

该命令无法按预期工作.它取代了所有"在文本文件中,而不仅仅是".

它与sed"s/\"/ \'/ g"file.txt完全相同

我正在使用Mac OS X Leopard.

有人有线索吗?

regex unix macos sed

5
推荐指数
1
解决办法
4378
查看次数

在复制过程中处理错误

我要将文件从外部源导入到postgresql表中.我尝试使用\ copy from,但我不断在文件中间收到错误(附加列).

有没有办法告诉postgresql在"\ copy from"期间忽略包含错误的行?

谢谢

postgresql

5
推荐指数
1
解决办法
2611
查看次数

是否有一种简单的方法可以消除tsvector中lexeme的出现?

我在表中有一个tsvector列,我希望能够从tsvector中删除一个lexeme.

我开始玩ts_stat来重建一个新的tsvector,但它看起来很复杂.

有一个简单的方法吗?

postgresql tsvector

3
推荐指数
1
解决办法
414
查看次数

在轨道3.2中访问路线助手

我正在将rails 2.3应用程序迁移到rails 3.2.我有一个对象用于管理我从不同来源收集的一些统计数据的缓存.由于收集过程很长,传统的片段缓存无法完成.我不得不异步填充缓存.AsynchCache对象,从Google Analytics获取数据并将部分内容存储在缓存中.

include Rails.application.routes.url_helpers

class AsynchCache 

  def self.get_popular_races_from_google_analytics(lang='en')
  # getting info form GA using Garb.
  end

def self.set_popular_races(language=nil)
   av = ActionView::Base.new(Rails.configuration.paths['app/views'])
    language_list = Global.instance.languages_UI.map{|a| a[0]}
    for lang in language.nil? ? language_list : [language]
      output = av.render(
          :partial => "home/popular_races",
          :locals => {:lang => lang}
      )
      Rails.cache.delete("popular_races_#{lang}")
      Rails.cache.write("popular_races_#{lang}",output) 
    end
  end

 def self.get_popular_races(lang='en')
    Rails.cache.read("popular_races_#{lang}")
  end
end
Run Code Online (Sandbox Code Playgroud)

我用于显示的部分如下

  • "> tmp_race.name - %>

当我想显示内容时,我只需要使用:

<div id="popular_races"> <%# AsynchCache.get_popular_races(params[:locale])-%> </div>
Run Code Online (Sandbox Code Playgroud)

它在我第一次加载页面时工作正常,或者在irb中工作正常,但如果我尝试重新加载页面或在development.rb中设置config.cache_classes = true,我会收到错误:

stack level too deep
Rails.root: /Users/macbook/Sites/marathons

Application Trace | Framework …
Run Code Online (Sandbox Code Playgroud)

routing model ruby-on-rails-3

3
推荐指数
1
解决办法
2044
查看次数