Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。

4
Rails:在Rails中使用带有has_one关联的build
在此示例中,我创建了一个userno profile,然后稍后profile为该用户创建一个。我尝试将build与has_one关联一起使用,但这使它崩溃了。我看到此工作的唯一方法是使用has_many。本user应该只有最多只能有一个profile。 我一直在尝试这个。我有: class User < ActiveRecord::Base has_one :profile end class Profile < ActiveRecord::Base belongs_to :user end 但是当我这样做时: user.build_profile 我得到错误: ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'profiles.user_id' in 'where clause': SELECT * FROM `profiles` WHERE (`profiles`.user_id = 4) LIMIT 1 Rails中有没有一种方法可以使0或1有关联?

6
使用rspec测试文件上传-Rails
我想测试Rails中的文件上传,但不确定如何执行此操作。 这是控制器代码: def uploadLicense #Create the license object @license = License.create(params[:license]) #Get Session ID sessid = session[:session_id] puts "\n\nSession_id:\n#{sessid}\n" #Generate a random string chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a newpass = "" 1.upto(5) { |i| newpass << chars[rand(chars.size-1)] } #Get the original file name upload=params[:upload] name = upload['datafile'].original_filename @license.format …

5
如何在Rails中发现模型属性?
我发现很难轻松查看所有模型类中都存在哪些属性/属性,因为它们未在我的类文件中明确定义。 为了发现模型属性,我将schema.rb文件保持打开状态,并在它与需要编写的任何代码之间进行切换。这行得通,但是很笨拙,因为我必须在读取模式文件以拾取属性,模型类文件以检查方法以及我编写的用于调用属性和方法的任何新代码之间切换。 我的问题是,当您第一次分析Rails代码库时,如何发现模型属性?您是否始终保持schema.rb文件处于打开状态,还是有一种更好的方法不涉及在模式文件和模型文件之间不断地切换?


4
访问类的常量
当我有以下内容时: class Foo CONSTANT_NAME = ["a", "b", "c"] ... end 有没有一种方法可以访问,Foo::CONSTANT_NAME或者必须使类方法访问该值?

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

11
如何在Rails上禁用“无法从…渲染控制台”
我正在使用Ubuntu / vagrant作为开发环境。我在Rails控制台上收到这些消息: Started GET "/assets/home-fcec5b5a277ac7c20cc9f45a209a3bcd.js?body=1" for 10.0.2.2 at 2015-04-02 15:48:31 +0000 Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 是否可以禁用那些“无法渲染...”消息或以任何方式允许它们?

7
通过关联归属
考虑下面的协会,我需要引用Question一个Choice通过从连接Choice模式。我一直试图belongs_to :question, through: :answer用来执行此操作。 class User has_many :questions has_many :choices end class Question belongs_to :user has_many :answers has_one :choice, :through => :answer end class Answer belongs_to :question end class Choice belongs_to :user belongs_to :answer belongs_to :question, :through => :answer validates_uniqueness_of :answer_id, :scope => [ :question_id, :user_id ] end 我正进入(状态 NameError未初始化的常数 …

26
如何避免运行ActiveRecord回调?
我有一些具有after_save回调的模型。通常这很好,但是在某些情况下,例如在创建开发数据时,我想保存模型而不运行回调。有没有简单的方法可以做到这一点?类似于... Person#save( :run_callbacks => false ) 要么 Person#save_without_callbacks 我查看了Rails文档,没有找到任何东西。但是,以我的经验,Rails文档并不总是能讲述整个故事。 更新 我找到了一篇博客文章,其中解释了如何从这样的模型中删除回调: Foo.after_save.clear 我找不到该方法的文档记录,但似乎可行。


7
'sudo gem install'或'gem install'和gem位置
运行' sudo gem list --local'和' gem list --local'给我不同的结果。我的宝石路径设置为我的主文件夹,并且仅包含来自' gem list --local' 的宝石。 在计算机上的不同目录中安装gems可能不是一件好事,所以我应该对gem路径进行不同的设置,并且sudo在安装某些东西时应该始终使用吗? my ~/.profile export PATH=/opt/local/bin:/opt/local/sbin:$PATH export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 〜/ .bash_profile为空。


5
RVM和rbenv实际如何工作?
我对RVM和rbenv的实际工作方式很感兴趣。 显然,它们在不同版本的Ruby和gemset之间交换,但是如何实现呢?我以为它们只是在更新符号链接,但是深入研究代码(我必须承认我对Bash的了解是肤浅的),它们似乎在做更多的事情。

10
如何更改Rails中Active Record的默认时区?
在我application.rb身上,我遇到了以下评论 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. config.time_zone = 'Eastern Time (US & Canada)' 从上面您可以看到,我已经config.time_zone达到了EST时间。但是,仍然在数据库中创建记录时,看起来好像datetime是以UTC格式存储的。 在上面的评论中,他们说 ...并使Active Record自动转换为该区域... 我该怎么办?在哪里? 另外,我也会在heroku上部署它,我希望设置可以继续使用

15
Bundler:找不到命令
我通过以下一些教程正确安装了vps,ubuntu 10.04,rails 3,ruby和mysql。如果我运行bundle check或bundle install收到错误“ -bash:bundle:命令未找到”。从gem list --local我看到的是'bundler(1.0.2,1.0.0)'已安装。 我不知道怎么了... gem environment 返回: RubyGems Environment: - RUBYGEMS VERSION: 1.3.7 - RUBY VERSION: 1.8.7 (2010-04-19 patchlevel 253) [i686-linux] - INSTALLATION DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8 - RUBY EXECUTABLE: /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby - EXECUTABLE DIRECTORY: /opt/ruby-enterprise-1.8.7-2010.02/bin - RUBYGEMS PLATFORMS: - ruby - x86-linux - GEM PATHS: - /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8 …

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.