Tag: ruby on rail

仅为Rake任务运行初始化程序

我想在执行Rake任务时运行某个初始化程序,但在运行Rails服务器时则不行。 区分Rake调用和服务器调用的最佳方法是什么?

在TextMate中,我无法使用Rails tmbundle创建局部视图

/Applications/TextMate.app/Contents/SharedSupport/Support/lib/ui.rb:355:in `to_plist’: An object in the argument tree could not be converted (ArgumentError) from /Applications/TextMate.app/Contents/SharedSupport/Support/lib/ui.rb:355:in `request_string_core’ from /Applications/TextMate.app/Contents/SharedSupport/Support/lib/ui.rb:193:in `request_string’ from /Users/pma/Library/Application Support/TextMate/Bundles/Ruby on Rails.tmbundle/Support/bin/create_partial_from_selection.rb:23:in `’ 我安装了RoR软件包: https : //github.com/drnic/ruby-on-rails-tmbundle.git 使用rvm。

“rake db:seed”和rake db:fixtures:load“之间的区别是什么?

我是Ruby和Rails的新手,对某些事情感到好奇。 在两个不同的教程中,我看到他们使用不同的方法来填充具有基本测试信息的数据库。 一个使用“rake db:seed”从包含样本数据的文本文件中提取。 另一个使用“rake db:fixtures:load”。 对我来说,他们看起来完全一样。 他们,或者我在这里遗失了什么? (极有可能)

Rails中的非RESTful操作

好吧,当GitHub关闭时,代码设计问题: 我总是在rails应用程序(通常)中使用非标准RESTful操作进行分析瘫痪。 我有乔布斯,我希望能够取消(并重新激活)它们。 它不像设置复选框那么简单; 还有一些其他的事情需要发生。所以我不能只使用现有的JobsController#update动作。 我认为这是我的选择: 1.只需添加cancel并reactivate现有作业控制器即可。 路线将是这样的: POST /admin/jobs/cancel/:job_id POST /admin/jobs/reactivate/:job_id (不是RESTful;假设这是一个坏主意) 2.使用create和destroy动作创建JobCancellationsController 。 重新激活作业会destroy JobCancellation资源。 我将使用嵌套路由,如下所示: resources :jobs, except: :show do resource :job_cancellation, only: [:create, :destroy] end 默认情况下会给我一些类似的东西 一个) POST /admin/jobs/:job_id/job_cancellation DELETE /admin/jobs/:job_id/job_cancellation 我可以在不改变控制器的情况下整理路线,就像: b) POST /admin/jobs/:job_id/cancellation DELETE /admin/jobs/:job_id/cancellation 虽然这看起来不太直观 – “取消”会更好cancel 。 所以我可以在保持控制器相同的同时改变路线: C) POST /admin/jobs/:job_id/cancel DELETE /admin/jobs/:job_id/cancel 第一条路线现在有意义(虽然严格来说不是RESTful ?),但第二条路线不是……“删除工作取消”? 所以你要改成它: d) […]

Ruby on Rails登录后设计代码

我有一个使用Devise登录的RoR应用程序。 创建新用户记录时会执行一些代码,方法是将user.rb文件作为after_create调用/ macro / whatever放入。 我需要在每次登录后运行此代码,而不是在新用户创建时运行。 通过一些谷歌搜索,似乎有一个选项是在devise.rb代码中放置Warden回调。 我的问题是: 这是对的吗,和/或有更好的方法吗? 如果这是正确的方法…… Warden :: Manager …方法defs应该在Devise.setup中的devise.rb中,还是在它之后? after_authentication我应该使用回调吗? 我只是检查是否存在基于用户名的目录,如果不存在,则创建它。

Rails 4如何在出错时覆盖设计响应路径

我一直在努力争取这个。 我有一个Rails4 / Devise 3.1应用程序,系统中有两个用户: gradle生 雇主 和一个设计用户可以通过多态:profile关联成为研究生或雇主。 我有gradle生通过/graduate/sign_up路径和雇主通过/employer/sign_up路径注册两个路由到相同的/views/devise/registrations/new.html.erb视图(因为他们的注册表格几乎相同 -电子邮件和密码)。 一切正常,除非有validation错误, RegistrationsController#create.respond_with resource总是将两个用户类型重定向到/users路径,我需要将它们重定向回原来的位置,例如/graduate/sign_up或/employer/sign_up分别是/employer/sign_up 。 我尝试用redirect_to替换respond_with ,但最终我丢失了带有相关错误消息的资源对象。 谁知道如何做到这一点? 这些是我的模特: class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable belongs_to :profile, polymorphic: true end class Graduate < ActiveRecord::Base has_one :user, as: :profile end class Employer < ActiveRecord::Base has_one :user, as: :profile end 注册管理员: class RegistrationsController […]

铁轨项目中的耙子范围?

在我正在研究的项目中,我有很多使用rakes运行的解析器。 当使用另一个rake中已存在的方法名称,并且因为它们都使用相同的环境时,我会遇到冲突。 有没有办法限制其名称空间中的rake文件的范围? 我认为那是命名空间的全部意义吗? 例: namespace :test do task :test_task => :environment do … end def test_method(argument) … end end namespace :other_test do task :test_task => :environment do … end def test_method(argument, argument2) … end end 在这种情况下,当运行rake test:test_task我将收到无效数量的参数错误。 另一方面,如果我在任务本身内定义方法,我必须按顺序将方法保留在rake文件的顶部。 这有点令人困惑和丑陋。 那只是一个必要的邪恶吗? 谢谢!

IronRuby On Rails VS. Ruby On Rails(入门)

情景 我是一名具有几年经验的C#/ ASP.NET / MVC / Silverlight开发人员。 我正试图启动我的Ruby On Rails学习。 我目前正试图真正感受到ROR。 我想知道标准 作为.Net开发人员,您倾向于使用标准IDE(Visual Studio),一些标准数据库(SQL Server,Oracle等),以及用于设置Web 2.0应用程序样式的特定方式(XHTML / CSS,Silverlight等) 。) “那么RUBY ON RAILS的标准等价物是什么!? (IDE,DB,Presentation Layer Markups)’ 也 我走的路线是什么? 我听说过IronRuby,从我读过的内容来看,它几乎已经完成转换它与Rails一起使用(IronRuby on Rails)。 或者我是否直接使用Ruby On Rails!? 有什么好处? 我如何通过使用Ruby On Rails在Rails上使用IronRuby获益? 非常感谢,谢谢。

在Rails测试(MiniTest)中分配方法的目的是什么?

用于自动生成的测试: test “should create item” do login_user assert_difference(‘Item.count’) do post :create, item: { creator: @item.creator, title: @item.title, user_id: @item.user_id, text: ‘Hello, world!’ } end assert_redirected_to(assigns(:item)) end Rails 文档没有任何描述。 这种方法的目的是什么以及如何使用它?

使用Nokogiri查找包含的标记

我有一个像html元素: 我想通过id搜索这个元素,但似乎nokogiri被[]搞糊涂了。 我尝试着: doc.css(“#spam[#{eggs.id}]”) 但无济于事。