Questions tagged «ruby-on-rails»

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

6
跳过“ rails generate controller”的测试,资产和助手的语法吗?
我阅读了帮助并尝试了以下命令以跳过测试,资产和帮助文件的生成 $ bin/rails generate controller home index --helper false --assets false --controller-specs false --view-specs false create- app/controllers/home_controller.rb route get "home/index" invoke erb create app/views/home create app/views/home/index.html.erb invoke rspec error false [not found] error false [not found] 如您在上面的输出中所注意到的那样,此&仅controller, routes&views生成。但是最后两行很有趣: error false [not found] error false [not found] 显然,rails似乎不喜欢--option-name false语法。所以这个错误是因为我使用了错误的语法?如果是,那正确的方法是什么?谢谢

6
在PATH模式040777的PATH中获得警告“不安全的世界可写目录/ home / chance”,用于rails和gem
我已经尝试过了,但是它没有用,似乎适用于osx。我用rvm,rails 3和ruby 1.9.2重新安装了Ubuntu 10.10。我有一个新鲜的Rails应用程序,但是使用gem或rails会导致以下警告(带有滞后)。 $ rails -v /home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/railties-3.0.5/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /home/chance in PATH, mode 040777 /home/chance/.rvm/gems/ruby-1.9.2-p180@global/gems/bundler-1.0.10/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /home/chance in PATH, mode 040777 Rails 3.0.5 $ gem -v /home/chance/.rvm/rubies/ruby-1.9.2-p180/bin/gem:4: warning: Insecure world writable dir /home/chance in PATH, mode 040777 1.6.2 以防万一,这是我的Gemfile: source 'http://rubygems.org' gem …
84 ruby-on-rails  ruby  linux  gem  rvm 

5
带有参数的before_filter
我有一种方法可以执行以下操作: before_filter :authenticate_rights, :only => [:show] def authenticate_rights project = Project.find(params[:id]) redirect_to signin_path unless project.hidden end 我也想在其他一些Controller中使用此方法,因此我将该方法复制到了application_controller中包含的帮助器中。 问题是,在某些控制器中,项目的ID不是:id符号,而是fe :project_id(也:id存在fe (对于另一个模型) 您将如何解决这个问题?是否有一个选项可以向before_filter操作添加参数(以传递正确的参数)?

4
force_ssl在Rails中做什么?
在上一个问题中,我发现我应该设置nginx ssl终止并且不让Rails处理加密的数据。 那么为什么存在以下内容? config.force_ssl = true 我在生产配置文件中看到了此注释。但是,如果期望nginx将处理所有ssl内容,以便我的rails应用程序不处理加密数据,那么该怎么config.force_ssl = true办? 如果我知道我将一直使用Nginx,是否应该在生产中将其保留为注释?

4
Rails嵌套的content_tag
我正在尝试将内容标签嵌套到自定义帮助程序中,以创建如下内容: <div class="field"> <label>A Label</label> <input class="medium new_value" size="20" type="text" name="value_name" /> </div> 请注意,输入与表单无关,它将通过javascript保存。 这是帮助器(它将执行更多操作,然后仅显示html): module InputHelper def editable_input(label,name) content_tag :div, :class => "field" do content_tag :label,label text_field_tag name,'', :class => 'medium new_value' end end end <%= editable_input 'Year Founded', 'companyStartDate' %> 但是,当我呼叫助手时,标签未显示,仅显示输入。如果注释掉了text_field_tag,则显示标签。 谢谢!


9
为什么使用嵌入式数组在我的Rails多重选择中第一个元素总是空白?
我正在使用Rails 3.2.0.rc2。我有一个Model,其中有一个静态变量Array,该静态变量通过一种形式提供,以便用户可以选择的子集Array并将其选择保存到数据库中,存储在中的单个列中Model。我已经在存储的数据库列上使用了序列化,Array并且Rails正确地将用户的选择转换为Yaml(并在读取该列时返回到数组)。我正在使用多选表单输入进行选择。 我的问题是,按照我目前的方式,一切都会按我预期的那样工作,只是用户的子集数组在发送到服务器时始终具有空白的第一个元素。 这没什么大不了的,我可以写出代码以消除这种情况,但是我觉得我只是在犯某种语法错误,因为在我看来,默认的Rails行为不是故意的无需任何理由即可添加此空白元素。我一定错过了某件事,或者忘记了禁用某种设置。请帮助我了解我所缺少的内容(或为我提供一些好的文档,这些文档比在管间上可以找到的更深入地描述了此内容)。 MySQL数据库表“模型”: 包含一个名为subset_arrayTEXT字段的列 类模型包括以下设置: serialize :subset_array ALL_POSSIBLE_VALUES = [value1, value2, value3, ...] 用于编辑模型的表单包括以下输入选项: f.select :subset_array, Model::ALL_POSSIBLE_VALUES, {}, :multiple => true, :selected => @model.subset_array 从客户端PUT到服务器看起来像这样: 假设仅选择了value1和value3 "model" => { "subset_array" => ["", value1, value3] } 数据库更新如下所示: UPDATE 'models' SET 'subset_array' = '--- \n- \"\"\n- value1\n- value3\n' 如您所见,正在发送并在数据库中设置的数组中还有这个多余的空白元素。我该如何摆脱呢?我的f.select通话中是否缺少参数? 非常感谢:) …

6
PG ::错误:错误:新编码(UTF8)不兼容
我已经postgresql-9.2.4从源代码安装,现在在执行时在Rails应用程序中安装: rake db:create 我得到的命令: $ bin/rake db:create RAILS_ENV="test" PG::Error: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) HINT: Use the same encoding as in the template database, or use template0 as template. : CREATE DATABASE "verticals_test" ENCODING = 'unicode' /home/vagrant/my-project/.gems/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:652:in `exec .... bin/rake:16:in `load' …


11
尝试使用mysql2 gem安装应用程序时出错
我正在尝试安装使用mysql2gem的开源Rails 3.2.21应用程序,但是当我尝试运行bundle命令时,出现以下错误: Fetching: mysql2-0.3.18.gem (100%) Building native extensions. This could take a while... p ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /Users/my_username/.rvm/rubies/ruby-2.1.2/bin/ruby -r ./siteconf20150614-72129-orqsb7.rb extconf.rb checking for ruby/thread.h... yes checking for rb_thread_call_without_gvl() in ruby/thread.h... yes checking for rb_thread_blocking_region()... yes checking for rb_wait_for_single_fd()... yes checking for rb_hash_dup()... …

8
设计中sign_in操作的不同布局
我正在尝试对sign_in操作使用名为“ devise”的其他/自定义布局。我在devise Wiki中找到了此页面,第二个示例甚至说您可以按操作进行操作(在本例中为sign_in操作),但是没有显示执行此操作的示例。IRC上的某人告诉我可以尝试以下操作: class ApplicationController < ActionController::Base protect_from_forgery layout :layout_by_resource def layout_by_resource if devise_controller? && resource_name == :user && action_name == 'sign_in' "devise" else "application" end end end 但它似乎仍无法正常工作,因为它仍在加载默认的应用程序布局。我将不胜感激任何帮助。


3
如何在Rails / RSpec中测试异常引发?
有以下代码: def index @car_types = car_brand.car_types end def car_brand CarBrand.find(params[:car_brand_id]) rescue ActiveRecord::RecordNotFound raise Errors::CarBrandNotFound.new end 我想通过RSpec对其进行测试。我的代码是: it 'raises CarBrandNotFound exception' do get :index, car_brand_id: 0 expect(response).to raise_error(Errors::CarBrandNotFound) end ID等于0的CarBrand不存在,因此我的控制器代码引发了Errors :: CarBrandNotFound,但是我的测试代码告诉我什么都没有提出。我该如何解决?我怎么了

6
Rails与多个外键的关联
我希望能够在一个表上使用两列来定义一种关系。因此,以任务应用为例。 尝试1: class User < ActiveRecord::Base has_many :tasks end class Task < ActiveRecord::Base belongs_to :owner, class_name: "User", foreign_key: "owner_id" belongs_to :assignee, class_name: "User", foreign_key: "assignee_id" end 所以呢 Task.create(owner_id:1, assignee_id: 2) 这使我可以执行Task.first.owner返回用户1和Task.first.assignee返回用户2但User.first.task什么也不返回的操作。这是因为任务不属于用户,它们属于所有者和受让人。所以, 尝试2: class User < ActiveRecord::Base has_many :tasks, foreign_key: [:owner_id, :assignee_id] end class Task < ActiveRecord::Base belongs_to :user end 这完全失败了,因为似乎不支持两个外键。 …

5
RoR 4中带有验证的正则表达式
有以下代码: class Product < ActiveRecord::Base validates :title, :description, :image_url, presence: true validates :price, numericality: {greater_than_or_equal_to: 0.01} validates :title, uniqueness: true validates :image_url, allow_blank: true, format: { with: %r{\.(gif|jpg|png)$}i, message: 'URL must point to GIT/JPG/PNG pictures' } end 它可以工作,但是当我尝试使用“ rake test”对其进行测试时,我会捕获以下消息: rake aborted! The provided regular expression is using multiline anchors …

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.