Questions tagged «ruby-on-rails-3»

Ruby on Rails是一个用Ruby编写的开源Web开发框架。Ruby on Rails遵循约定胜于配置的原则,使您不必重新进行发明以保持生产力。仅将此标记用于Rails 3特定问题,并标记这些问题[ruby-on-rails]。

2
如何从github获取gem的特定“提交”?
我正在使用rails_admin,并且由于它处于(非常活跃的)开发中,因此不时出现错误。 据我所知,在github中没有关于gem的版本,所以我不能:version在Gemfile中使用gem声明的键。 有没有办法我可以将特定提交(我知道对我来说很好)绑定到Gemfile? 我目前在我的Gemfile中: gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git' 我希望能够执行以下操作(例如“ commit_id”): gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git', :commit_id => "4e7d53e3c5c4c3c5c43c3" 这可能与github有关吗?

14
do..end vs括号中的大括号
我有一个同事正在积极尝试说服我不要使用do..end,而应使用花括号在Ruby中定义多行块。 我坚决只使用短括号来代替大括号,而对其他所有东西都做完。但是我认为我会与更广泛的社区联系以获得一些解决方案。 那是什么,为什么?(一些Shoulda代码示例) context do setup { do_some_setup() } should "do somthing" do # some more code... end end 要么 context { setup { do_some_setup() } should("do somthing") { # some more code... } } 就个人而言,仅看上述内容就可以为我解答问题,但我想向更大的社区开放。

5
Rails 3检查属性是否已更改
在Rails 3中进行更新之前,需要检查属性块是否已更改。 street1,street2,城市,州,邮政编码 我知道我可以使用类似 if @user.street1 != params[:user][:street1] then do something.... end 但是那段代码真的很长。有没有更清洁的方法?



7
轨道中的前导零
我的应用程序中有字段hr和min,都是整数。对于hr字段,如果用户输入“ 1”,我希望Rails在将其保存到数据库之前将其自动填充为“ 01”。同样对于该min字段,如果用户输入“ 0”,则应将其输入为“ 00”。 我怎样才能做到这一点?

14
如何删除Devise路线进行注册?
我在Rails 3应用程序中使用Devise,但是在这种情况下,必须由现有用户创建用户,该用户确定他/她将拥有哪些权限。 因此,我想要: 要删除路线的用户注册。 为了还允许用户编辑自己的个人资料(变更电子邮件地址和密码)后,双方已经签署了 我怎样才能做到这一点? 目前,我正在通过以下放置有效地删除此路线devise_for :users: match 'users/sign_up' => redirect('/404.html') 那行得通,但我想有更好的办法了,对吧? 更新资料 正如Benoit Garret所说,在我看来,最好的解决方案是跳过整体创建注册路由,而只创建我真正想要的注册路由。 为此,我先运行rake routes,然后使用输出重新创建想要的内容。最终结果是这样的: devise_for :users, :skip => [:registrations] as :user do get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration' put 'users' => 'devise/registrations#update', :as => 'user_registration' end 注意: :registerable我的User模特儿仍然有 devise/registrations 处理更新的电子邮件和密码 更新其他用户属性(权限等)由其他控制器处理 实际答案: 删除默认Devise路径的路由;即: devise_for :users, …

16
找不到PostgreSQL客户端库(libpq)
我正在尝试在Mac OS X 10.6上安装PostgreSQL for Rails。首先,我尝试了MacPorts安装,但是运行不顺利,所以我做了一键式DMG安装。这似乎可行。 我怀疑我需要安装PostgreSQL开发软件包,但是我不知道如何在OS X上进行安装。 这是我尝试做时得到的sudo gem install pg: $ sudo gem install pg Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb checking for pg_config... yes Using config values from /Library/PostgreSQL/8.3/bin/pg_config checking for libpq-fe.h... …

2
有人可以用简单明了的方式向我解释collection_select吗?
我正在浏览Rails API文档collection_select,他们真是糟糕透顶。 标题是这样的: collection_select(object, method, collection, value_method, text_method, options = {}, html_options = {}) 这是他们提供的唯一示例代码: collection_select(:post, :author_id, Author.all, :id, :name_with_initial, :prompt => true) 有人可以使用简单的关联(例如Userhas_many Plans和a Plan属于a User)来解释我要在语法中使用什么,为什么? 编辑1:而且,如果您解释了它在form_helper常规格式或常规格式中的工作原理,那将是很棒的。想象一下,您正在向了解Web开发但对Rails“相对较新”的Web开发人员进行解释。您将如何解释?



9
没有路线符合[GET] /资产
我有一个Rails应用,正在尝试在生产环境中进行测试。我跑了RAILS_ENV=production rake assets:precompile,生成了我所有在/ public / assets中的资产。问题是当我启动我的应用程序时,RAILS_ENV=production rails s thin我得到: ActionController::RoutingError (No route matches [GET] "/assets/application-eff78fd67423795a7be3aa21512f0bd2.css"): 该文件确实存在,尽管位于/public/assets/application-eff78fd67423795a7be3aa21512f0bd2.css。 关于为什么我要这个有RoutingError什么想法吗?

8
Rails:致命-用户的对等身份验证失败(PG :: Error)
我正在Ubuntu 11.10和RubyMine上运行开发 这是我对database.yml的开发设置:RubyMine为我创建的 development: adapter: postgresql encoding: unicode database: mydb_development pool: 5 username: myuser password: 当我尝试运行该应用程序时,出现以下错误,似乎我还没有创建“项目”用户,但是,如何在postgres中创建用户并为其授予数据库?如果这是问题所在,那么在Ubuntu中为此任务推荐使用什么工具?如果这不是问题,那么请提出建议。 Exiting /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `initialize': FATAL: Peer authentication failed for user "project" (PG::Error) from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `new' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `connect' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:303:in `new_connection' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:313:in `checkout_new_connection' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:237:in …

4
如何使用NuoDB在Ruby On Rails中手动执行SQL命令
我正在尝试手动执行SQL命令,以便可以访问NuoDB中的过程。 我正在使用Ruby on Rails,并且正在使用以下命令: ActiveRecord::Base.connection.execute("SQL query") “ SQL查询”可以是任何SQL命令。 例如,我有一个名为“ Feedback”的表,执行命令时: ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`") 这只会返回“ true”响应,而不是向我发送所有请求的数据。 这是Rails Console上的输出是: SQL (0.4ms) SELECT `feedbacks`.* FROM `feedbacks` => true 我想用它来调用NuoDB中的存储过程,但是在调用过程时,这也会返回“ true”响应。 无论如何,我可以执行SQL命令并获取请求的数据,而不是获得“真实”响应吗?

7
Rails路线的API版本控制
我正在尝试像Stripe一样对我的API进行版本控制。下面给出的最新API版本是2。 /api/users 将301返回 /api/v2/users /api/v1/users 返回版本1的200个用户索引 /api/v3/users 将301返回 /api/v2/users /api/asdf/users 将301返回 /api/v2/users 因此,除非指定的版本存在,否则基本上没有指定版本的内容都将链接到最新版本,然后重定向到最新版本。 这是我到目前为止的内容: scope 'api', :format => :json do scope 'v:api_version', :api_version => /[12]/ do resources :users end match '/*path', :to => redirect { |params| "/api/v2/#{params[:path]}" } end

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.