Tag: ruby on rails 3

如何在Rails中访问POST变量?

我不是真正的Rails开发人员,我正在研究其他人的代码。 无论如何,我正在尝试更改登录function,以便它使用POST而不是GET。 现在它看起来像这样: def login email = params[:email]; password = params[:password]; # login logic … end 我需要更改什么才能使用POST变量? 编辑:在routes.rb中看起来相关的routes.rb match “service/login”, :to => “service#login” 如果我正在寻找其他东西,请告诉我。

Rails:如何连接到旧的PostgreSQL(你的PostgreSQL版本(70417)太旧了,请升级!)

尝试建立与远程PostgreSQL的连接,我收到错误: RuntimeError:您的PostgreSQL版本(70417)太旧了,请升级! 来自/Users/panayi/.rbenv/versions/1.9.3-p362/lib/ruby/gems/1.9.1/gems /activerecord-3.2.11/lib/active_record/connection_adapters /postgresql_adapter.rb:331:in`initialize “ 我无法访问PostgreSQL,因此无法升级。 我试过使用旧的pg gem: # Gemfile gem ‘pg’, ‘~> 0.9.0’ 但后来我得到: LoadError:请安装postgresql适配器: gem install activerecord-postgresql-adapter (无法激活pg(〜> 0.11),已激活pg-0.9.0。确保所有依赖项都已添加到Gemfile中。) 我被卡住了。

Ruby Regex – 需要替换正则表达式匹配中每个字符的出现

这是我的字符串: mystring = %Q{object1=”this is, a testyay’, asdkf’asfkd”, object2=”yo ho’, ho”} 我将在逗号上拆分mystring ,因此我想(暂时)分出位于转义引号之间的逗号。 所以,我需要匹配转义引号+一些字符+一个或多个逗号+转义引号,然后在匹配的字符串中gsub逗号。 我想出的gsub的正则表达式是/(“.*?),(.*?”)/ ,我就像这样使用它: newstring = mystring.gsub(/(“.*?),(.*?”)/ , “\\1|TEMPSUBSTITUTESTRING|\\2”) ,但这只替换它在转义引号之间找到的第一个逗号。 如何让它替换所有逗号? 谢谢。

如何使用Ruby on Rails从电子邮件中提取所有URls /链接?

我正在建立一个书签网站。 我想从电子邮件中提取所有URI /链接。 我的网站正在使用Ruby on Rails。 如何提取收到的电子邮件内容的所有url?

Mongoid定制的setter / getters和super

我正在尝试修改属性Mongoid模型上的setter,但与ActiveRecord不同,我不能调用super来让Mongoid实际设置属性,因为模型使用include Mongoid::Document而不是ActiveRecord::Base的子类。 我希望能够做这样的事情。 class User include Mongoid::Document embeds_one :email_account def email_account=(_email_account) ret = super puts “email account updated!” do_something ret end end 除了,因为它不是一个子类,产生 NoMethodError: super: no superclass method 想法? 编辑: 你会怎么做一个吸气剂,比如 class User include Mongoid::Document embeds_one :email_address def email_address super || “myself@gmail.com” end end

validation嵌套表单中子对象的唯一性无法正常工作

我在Rails中的作用域唯一性validation有问题。 如果我尝试使用我不想重复的相同属性集创建一个新对象,直接在子模型中,但是当我尝试创建一个具有两个不唯一的子节点的父对象时,它可以正常工作没有被触发。 背景 我在Rails 3.2中有一个应用程序,其在HAML中的视图使用simple_form。 我有两个模型: Page和Property 。 页面可以具有许多属性,并且它接受属性的嵌套属性。 我想validation一个页面不能有两个具有相同名称的属性: #app/models/page.rb class Page :true end #app/models/property.rb class Property VALID_PROPERTIES, :uniqueness => {:scope => :page_id} end 当然,该属性具有page_id属性。 就像我说的,当通过其表单创建新属性时,validation工作。 如果我尝试创建一个具有相同名称和相同page_id的新属性,Rails会告诉我该名称已被删除。 问题 如果我创建一个新页面,并通过嵌套表单,分配各种属性,我可以绕过此validation。 当数据库中尚未存在page_id和property_id的组合时,这似乎只是一个问题,例如,如果我编辑已保存属性的Page模型,我尝试添加一个新的一个同名,validation现在触发。

嵌套forms与设计

这是我的注册表格: resource_name, :url => registration_path(resource_name)) do |f| %> Artist: “artist_button” %> Listener: “listener_button” %> “new_user_submit” %> 我的用户模型中也有这个: accepts_nested_attributes_for :profile 但是问题是嵌套在表单中的单选按钮甚至没有出现在页面上。 我怎样才能解决这个问题?

Heroku上的预编译失败,initialize_on_precompile设置为false

我有一个应用程序,我正在尝试部署到Heroku的雪松堆栈。 在部署的预编译阶段,我收到错误: Your bundle is complete! It was installed into ./vendor/bundle Cleaning up the bundler cache. —–> Writing config/database.yml to read from DATABASE_URL —–> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! could not connect to server: Connection refused Is the server running on host “127.0.0.1” and accepting TCP/IP connections on port […]

Ruby:Rails:使用哪个版本的gem?

我有一个Rails 3应用程序,它在Gemfile中有以下行。 gem ‘sqlite3’, ‘1.3.6’ 但是,如果我列出我的本地gem,我得到: > gem list sqlite3 –local *** LOCAL GEMS *** sqlite3 (1.3.6, 1.3.4) 当我的Rails应用程序执行时 require ‘sqlite3’ 选择了哪个版本的gem? 是否选择了列表中的第一个gem? 有没有办法告诉Ruby运行时使用版本1.3.4,即使安装了1.3.6版本,并且Gemfile强制要求?

在这种情况下,Rails 3.1中的连接表会调用什么?

我有两个表与has_and_belongs_to_many关系: categories和raw_categories 该表应该被称为categories_raw_categories吗?