标签: blacklight

切换Blacklight标签的语言环境后需要刷新页面

我正在尝试创建一个基于Blacklight的Rails应用程序的阿拉伯语版本.这是我面临的问题:

当我切换语言时,除了Blacklight标签外,一切都完美无缺.只有当我刷新页面时才会翻译标签.

这是我要显示的标签:"ترتيبحسبعام"(翻译:按年份排序)

但这就是我目前得到的:"年ترتيبحسب"

从阿拉伯语切换回英语时会出现同样的问题 - 标签以阿拉伯语显示,直到我刷新页面.

这就是我的Blacklight配置:

class CatalogController < ApplicationController
  include Blacklight::Catalog

  configure_blacklight do |config|
    # ...
    config.add_sort_field 'pub_date_sort desc, title_sort asc', :label => I18n.t('sortby.year')
    # ...
  end
end
Run Code Online (Sandbox Code Playgroud)

以下是我在Application控制器中设置区域设置的方法:

class ApplicationController < ActionController::Base

 before_filter :set_locale
 def set_locale
   I18n.locale = params[:locale] || I18n.default_locale
 end

 # ...
end
Run Code Online (Sandbox Code Playgroud)

我不确定发生了什么,我非常感谢你的帮助.

ruby-on-rails blacklight rails-i18n

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

`link_to`包含引擎路由的参数

(虽然这讨论了Blacklight引擎,但我相信这个问题实际上纯粹是关于Rails.)

从继续我的追求scope围绕mount无效?(tl; dr:使引擎路由服从与:locale应用程序路由相同的范围),在挖掘Rails源之后.

目前,我有这个设置:

# config/routes.rb
Rails.application.routes.draw do      
  Blacklight::Engine.routes.default_scope = { path: "(:locale)", locale: /en|ja/ }
  mount Blacklight::Engine => '/'

  scope "(:locale)", locale: /en|ja/ do
    # ...
  end
end
Run Code Online (Sandbox Code Playgroud)

这使得路线正常工作.但是,我有这个视图代码来生成当前页面的备用语言链接(由link_to当前页面加上/与param [duplicate]合并):

<div id="languages_nav_popup" class="navbar-inverse">                                                                                                                                                          
  <% locales.each do |locale| %>
    <% next if locale == I18n.locale %>
    <%= link_to params.permit!.merge(locale: locale) do %>                                             
      <img src="<%= url_for "/img/flag/#{locale}.png" %>"/>                                            
    <% end %>
  <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

link_to在当前页面是一个引擎路由失败.这是由于这段代码actionpack:

# lib/action_dispatch/journey/formatter.rb …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails url-routing rails-engines blacklight

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

Rails新手:"<<"是什么意思?

我正在尝试将高级搜索工具添加到Blacklight安装中,但我知道对于rails来说是微不足道的.

我被困在一个(迄今为止很棒的)教程中,该教程指出:

Turn this feature on by adding to your CatalogController definition:
self.search_params_logic << :add_advanced_parse_q_to_solr
Run Code Online (Sandbox Code Playgroud)

我可以找到我的CatalogController,但我不知道在哪里放置"<<:add_advanced_pa​​rse_q_to_solr"thingie.

它是顶级类定义的一部分吗?现在它说:

class CataligController < ApplicationController
Run Code Online (Sandbox Code Playgroud)

我应该用"<<:add_advanced_pa​​rse_q_to_solr"交换"<ApplicationController",还是应该追加它?

":"是什么意思,"<<"是什么意思?

如果有人对可以教我这些(我猜)基本语法的教程有任何好的参考,请在这里发布 - 我很想知道我在做什么而不是只是复制/粘贴我的方式!

ruby-on-rails blacklight

-1
推荐指数
1
解决办法
76
查看次数