Tag: ruby on rails 3

切换到新域名时保持用户会话(Ruby on Rails)

我的Rails应用程序目前在example.org上可用,但我想切换到example.com 在routes.rb执行通配符301重定向不是问题,但我也想保留用户会话 。 由于新域名无法访问旧域名的cookie,因此将用户重定向到新域名仍然有他/她登录的最佳(安全且尽可能简单)方法是什么? 我发现很multithreading都在谈论使用复杂的身份validation令牌方法设置跨域Web应用程序,但我正在寻找一次性单向迁移,所以我希望解决方案对此更简单。 有什么建议? 我正在使用Ruby on Rails 3,OmniAuth,并使用默认的’cookie_store’作为我的会话存储。

用于搜索的Rails Gem

我有一个webapp,我想提供一个高级搜索,用户输入由AND和/或OR连接的任意数量的查询,如下所示: (进入网页上的搜索框) name = “john” OR (occupation = “gardener” AND hobby.main = “reading”) 在之前的文章中 ,我成功地实现了一个系统,在该系统中,我将如上格式化的查询直接转换为有效的SQL语句,并将它们直接输入SQL以查询数据库。 这有效,但现在我担心三件事: 这是一个SQL注入的怪话 如果用户的输入无效,则SQL会抛出一个不太漂亮的错误……在处理这些exception时遇到一些麻烦(尽管这部分是可行的)。 代码看起来真的很hacky,我想知道是否有更好的方法。 好吧,通过使用搜索gem,我听说有更好的方法。 但是,我一直无法找到符合我需求的gem。 许多gem看起来太 复杂了我所需要的东西,我发现的任何内容都没有明确说明你如何能够专门实现我正在寻找的东西 – 用户输入由AND / OR连接的动态数量的查询声明。 将语句直接转换为SQL语法并将其正确注入,就像我现在正在做的那样,究竟有多昂贵? 将这些gem中的一种纳入我想要的东西是多么容易? “有经验的”Rails开发人员会做什么? 我是Rails的完全noobie,所以我没有任何经验。

Rails 3 – validation时间存在

我有一个带有Time属性的模型。 我想检查时间不能为空(更好的选择可能是检查输入是时间,但我不知道如何处理)。 我试过这个validation: # id :integer not null, primary key # school_class_id :integer # meeting_time :time class Meeting { :message => “can’t be empty!” } end 然后我试图在规范中检查这个,这失败了(空的时间还可以,但它不应该是)。 我做错了什么? Rspec的: # id :integer not null, primary key # school_class_id :integer # meeting_time :time require ‘spec_helper’ describe Meeting do before(:each) do @class = FactoryGirl.create( :school_class ) @attr_meeting […]

使用命名空间类时解决“NameError未初始化常量”的麻烦?

我正在使用rails v3.2.2。 我有两个类如下: # app/models/article/category/article_relationship.rb class Article::Category::ArticleRelationship < ActiveRecord::Base … end # app/models/comment/category/article_relationship.rb class Comment::Category::ArticleRelationship < ActiveRecord::Base … end # app/models/article/category.rb class Article::Category < ActiveRecord::Base … end # app/models/article.rb class Article < ActiveRecord::Base … end 如果在我的视图文件中我说 ::Article::Category::ArticleRelationship # or Article::Category::ArticleRelationship 我收到以下错误: NameError uninitialized constant Category::ArticleRelationship 我该如何解决这个问题? UPDATE 当我同时在同一个文件中声明多个命名空间类时,我发现问题“大部分”发生,例如: ::Article::Category::ArticleRelationship ::Article::Category # or ::Comment::Category::ArticleRelationship ::Article::Category # […]

部署后思考Sphinx – ThinkingSphinx :: SphinxError(搜索请求中未知的本地索引’user_core’):

我查看了这个主题: Sphinx错误:搜索请求中的未知本地索引“INDEX_NAME” ,但它已关闭,并且我的rails应用程序中没有解决问题。 我将TS更新为3.0.2,并将其包含在deploy.rb中。 我也改变了模型中的代码。 现在它在开发中工作,有些例子在测试中工作,有些则没有。 但成功部署后,我收到错误: ThinkingSphinx::SphinxError (unknown local index ‘user_core’ in search request): 我尝试重建,重启和其他的东西,但它不起作用:( 有谁能够帮我? 谢谢!

失踪的gem可以

Bundler could not find compatible versions for gem “railties”: In Gemfile: rails (= 3.2.3) ruby depends on railties (= 3.2.3) ruby jquery-rails (= 2.0.0) ruby depends on railties (3.2.5) 尝试“捆绑安装”时我收到了错误消息,这是我的gemfile source ‘https://rubygems.org’ gem ‘rails’, ‘3.2.3’ # Bundle edge Rails instead: # gem ‘rails’, :git => ‘git://github.com/rails/rails.git’ group :development do gem ‘sqlite3’, ‘1.3.5’ end gem ‘json’ […]

没有刷新页面如何显示闪存错误?

我有一个提交表单,显示在灯箱中。 我非常认真地validation了表单,但是有些情况下已经提交了播放列表,在这种情况下,在提交表单之前我无法分辨。 目前我有:disable_with => ‘Submitting…’ 如果错误被发送回表单,并且提交按钮将重新启用,那将是非常棒的。 这可能没有太多的复杂性吗? 我还有第二个相关的问题…因为我的表单在灯箱中,它的代码实际上是在索引页面上(我的应用程序只是一页)。 这意味着我的索引操作中没有’new’动作,而是@playlist = Playlist.new(:title => …) (以及@playlists = Playlist.all等)。 在我的路线中,我这样做: resources :playlists, :only => [:create] 这听起来跟我做的一样吗? 编辑:HEre是一些代码,虽然它基本上就像你想象的那么简单。 以下类型的作品……如果有效,则创建播放列表,否则无效。 两次调用create.js.erb ..我现在不知道如何使这项工作完成。 在成功我需要关闭窗口,失败时我需要将错误加载到已经在屏幕上的forms。 我不知道那是怎么回事:/ before_filter :load_genres, :only =>[:index, :user] before_filter :new_playlist, :only => [:index, :new] def index @playlists = Playlist.order(‘created_at DESC’).page(params[:page]).per(30) end def create @playlist = Playlist.new(params[:playlist]) respond_to do |format| […]

为什么这个button_to在Rails 3.2.11中呈现错误?

我在Rails 3.2.11中工作,我无法弄清楚为什么这个按钮不会根据API文档呈现。 具体来说,我无法正确呈现data-remote属性。 我的代码中有错误吗? 现在这段代码: “test”, :remote => true, :form_class => “test_button” %> 产生这个HTML: 根据API规范,它应该呈现: 我错过了什么?

范围:按两个日期之间的差异排序

我想创建一个范围,从最近的日期到最远的日期对数据进行排序。 例如,我有3个值: 然后我想对最接近给定日期的日期进行排序: 2012-12-29 。 我应该得到这个顺序: 2, 3, 1 。 如果我选择2012-12-30 ,结果必须是: 2012-12-30 。 我试过这样的事情: scope :order_by_closest_date, lambda{|time| select(“*, (date – DATE(‘#{time}’)) AS time”).order(“time ASC”) } 但它不起作用。 有关信息:Rails 3.2.9 Ruby 1.9.3 Postgresql 9.1.4。 有任何想法吗?

运行rails服务器时,Windows上没有Javascript运行时

我是Ruby on Rails的新手,我在Windows PC上设置它时遇到了麻烦。 我已成功按照http://rubyonrails.org/download上的说明操作。 但是,当我去运行rails server命令时,我想出了这个输出: C:/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.2.9/lib/execjs/runtimes.rb:47:in `a utodetect’: Could not find a JavaScript runtime. See https://github.com/sstephen son/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable) from C:/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.2.9/lib/execjs.rb:5:in `’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/execjs-1.2.9/lib/execjs.rb:4:in `’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee_ script.rb:1:in `require’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee_ script.rb:1:in `’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee- script.rb:1:in `require’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/coffee-script-2.2.0/lib/coffee- script.rb:1:in `’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/coffee-rails-3.1.1/lib/coffee-r ails.rb:1:in `require’ from C:/Ruby192/lib/ruby/gems/1.9.1/gems/coffee-rails-3.1.1/lib/coffee-r ails.rb:1:in […]