Tag: ruby on rails 3.1

使用rails资产管道在javascript文件中编码问题

我正在使用rails 3.1和资产管道(ruby 1.9.2)。 尝试提供具有utf-8编码字符串的javascript js.erb文件时出现以下错误 invalid byte sequence in US-ASCII 我在environment.rb文件中设置了Encoding.default_external = “UTF-8” 。 如何让资产管道使用不同的编码? 编辑 当我在文件外部生成utf-8字符时(此时通过从DB查询),只会显示错误。 如果我添加,错误消失了 到文件的顶部。 我猜这里有某种编码猜测,但是如果没有那种hacky解决方案我该如何避免呢?

在rails 3.1中更改视图格式(提供移动html格式,在普通html上回退)

我正在我们正常的html网站旁边创建一个移动网站。 使用rails 3.1。 移动站点在子域m.site.com中访问。 我已经定义了移动格式(Mime :: Type.register_alias“text / html”,:mobile)。 在ApplicationController中,我有“before_filter:mobile_site_before_filter”来识别移动站点并根据它设置格式。 def mobile_site_before_filter if request.subdomains.first == ‘m’ original_format = request.format request.format = :mobile @mobile_site = true request.formats.push(original_format) end end 在布局中,我有’main.html.erb’和’main.mobile.erb’。 因此,对于移动网站,使用移动布局。 现在有点工作了。 在UserController中,我有索引操作,它自动选择index.html.erb或index.mobile.erb。 无需在移动视图顶部进行额外编码。 成功。 但我有很多其他观点,其中相同的模板可用于在移动布局内提供但稍有变化。 例如,在MessagesController中,相同的视图几乎可以用于移动设备 In index.html.erb Normal user info, common for mobile and html ‘messages’) %> 呈现messages.html.erb,不需要messages.mobile.erb。 移动视图可以用css完成 ‘vote_form’) %> 现在我要渲染vote_form。[mobile | html] […]

资产在预编译时说“未预编译”

好的,当我尝试使用资产管道时,我收到此错误。 我不明白是什么导致了它。 Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Photos#show Showing …/app/views/photos/_photo_view.html.haml where line #2 raised: jquery.autocomplete isn’t precompiled Extracted source (around line #2): 1: – content_for :scripts do 2: = javascript_include_tag ‘jquery.autocomplete’ 但是,这是预先编译的。 我运行了rake assets:precompile RAILS_ENV=production在启动服务器之前rake assets:precompile RAILS_ENV=production ,在我的public/assets目录中我有文件: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js以及.js.gz ,它准确地反映在清单中: #manifest.yml — application.js: application-4277323e3f7506b71f45c71e8a3a7c8f.js jquery.autocomplete.js: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js jquery.cycle.all.min.js: jquery-183ef696b43944deaee5778d3094dbdd.cycle.all.min.js jquery.fancybox.js: jquery-e52e44b2b4fb349bade9beb91461a810.fancybox.js jquery.plupload.queue.js: jquery-f2e7f6ad7d2e5ca50235ed21f8d573cc.plupload.queue.js jquery.tools.js: jquery-c53e304240fa56767fe0f2a00cb4bceb.tools.js plupload.full.js: plupload-5dd26ee3fff6b627c19f196e9d1429dd.full.js application.css: application-ce5217e1714cbc4e9c3ff6c5dfc9b221.css […]

我如何在Mailer中使用资产?

我无法在邮件程序中使用任何forms的资产管道,而是使用Mailer本身或视图。 以下生成并清空src图像标记。 空图像标记如下所示: img alt =“Header-general” 以下forms通过模型附加文件并在视图中使用它会附加空图像。 attachments.inline[‘header.jpg’] = ’emails/header-general.png’ … 我确实检查了路径,甚至尝试了多条路径,等等但没有运气。 请帮忙。 在电子邮件中包含图像的任何forms都会有所帮助。 这是生产环境。 Xenium::Application.configure do # Settings specified here will take precedence over those in config/application.rb # Code is not reloaded between requests config.cache_classes = true # Full error reports are disabled and caching is turned on config.consider_all_requests_local = false config.action_controller.perform_caching = true […]

Rails资产路径中的CSS未由ERB在开发中处理

我在/app/assets/stylesheets/styles.css.erb有一个带有以下内容的Rails应用程序: … #nestedbg { background-position: left top; background-image: url(); background-repeat: repeat-x; background-attachment: fixed; } … 当我运行rake assets:precompile然后运行rails s -e production ,一切都按预期工作。 但是,当我删除预编译资产并在开发中运行rails s ,CSS文件如上所示出现而不是被正确替换。 我尝试在/config/environments/development.rb放置config.assets.compile = true ,但没有帮助。 有任何想法吗? 谢谢。

OmniAuth单点登录与Devise,invalid_credentials

我有3个网络应用程序 – A,B和C.应用程序A包含用户数据库。 如果访问App B和App C,我希望将用户重定向到App A进行身份validation,然后返回到他们尝试访问的任何应用程序。 同时,他们应该登录到所有应用程序。 除非有人有更好的解决方案,否则我已经使用了本博客文章中描述的OmniAuth / Devise组合解决方案。 我已经分发并更新到Rais 3.1.2示例应用程序A和示例应用程序B / C. 应用A – 提供商 – https://github.com/RobZolkos/sso-devise-omniauth-provider App B / C – 客户端 – https://github.com/RobZolkos/sso-devise-omniauth-client 这些示例应用程序正常工作,我将被重定向到提供程序应用程序进行身份validation,但它似乎无法进行身份validation。 我在这里附上了日志。 提供商似乎经历了这些动作,但是在日志的第26行,您可以看到似乎存在身份validation问题。 我错过了一些简单的方法来使这些示例应用程序工作吗

Ruby on Rails:自定义设计注册控制器,请求创建操作

我有一个自定义注册控制器,但我不想覆盖设计的创建操作。 当我尝试注册用户时,出现此错误: Unknown action The action ‘create’ could not be found for Devise::RegistrationsController 它是否要求它,因为我有一个自定义注册控制器? 如果是这样,这是否意味着我需要复制我不会从这里覆盖的所有操作: https : //github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb 或者因为我的申请有问题? 我的路线: devise_for :user, :controllers => { :registrations => “devise/registrations” }, :skip => [:sessions] do get ‘signup’ => ‘devise/registrations#new’, :as => :new_user_registration post ‘signup’ => ‘devise/registrations#create’, :as => :user_registration end 这是我的设计注册控制器 class Devise::RegistrationsController true redirect_to after_update_path_for(@user) else […]

Active Admin身份validation与用户身份validation冲突

Active Admin是一个用于在应用程序中使用管理仪表板的gem。 它使用Devise登录用户,并为管理员创建单独的admin_user模型。 我的应用程序已经使用了devise并将其用户作为user模型。 自从我开始使用活动的admin gem之后,在我的路由文件中,即使我的用户已登录,以下行也会一直解析为home #index而不是用户#spaceboard。以前用户工作时用户工作正常#dashboard作为根url。 root :to => ‘users#dashboard’, :constraints => lambda {|r| r.env[“warden”].authenticate? } root :to => ‘home#index’ 发生的事情是.authenticate? 正在检查是否已登录的admin_user (属于Active Admin)但不是我的user模型,这是我需要检查的内容,因此当我登录到活动管理界面时,我的站点根目录成为用户#dashboard而不是检查user是否已登录。 我该如何制作.authenticate? 检查user是否登录而不是admin_user ? 任何帮助或线索将非常感谢

如何在rails 3.1中显示控制器特定的javascript?

我有我的资产文件夹结构 assets javascripts products –product.js –productValidate.js store –store.js 我希望将project.js和projectValidate.js添加到我的application.js中,作为资产管道的一部分,仅当调用产品控制器中的操作时,并且当调用存储控制器中的操作时,调用store.js。 我怎样才能在rails 3.1中实现这一目标?

Rails v2.3:会话和cookie之间的区别

我正在通过阅读在线指南(适用于Rails v2.3 )学习Rails。 指南很棒,然而,对我来说有一个混乱,那就是: 有一章解释了Rails 会话 ,另一章解释了Rails的Cookies 。 解释很容易理解,但比较两者时,像我这样的读者并没有看到Session和Cookies之间的显着差异。 特别是在哪种情况下应该使用会话,在哪种情况下应该使用Cookie? 此外,在会话章节中,有一个CookieStore的概念, 那么CookieStore和Cookies之间有什么区别呢? 有人能解释一下这些吗?