Tag: ruby on rails 3.2

如何覆盖rails中的路径路径助手?

我的路线是这样定义的 match ‘/user/:id’ => ‘user#show’, :as => :user 如果由于某种原因传递了nil ID,我希望路由助手只返回’#’,如果ID不是nil,我希望它返回正常路径,如’/ user / 123’。 或者有更好的方法来做到这一点。 这个路由助手已经在我的代码中的很多地方使用,所以我不想改变它。 相反,我正在寻找一个会影响user_path所有实例的地方。 谢谢

如何在Rails中的注册表单中创建Devise用户时创建另一个对象?

我的系统中有不同类型的用户。 一种是,比方说,设计师: class Designer < ActiveRecord::Base attr_accessible :user_id, :portfolio_id, :some_designer_specific_field belongs_to :user belongs_to :portfolio end 这是在用户注册时立即创建的。 因此,当用户填写sign_up表单时,将创建一个Devise User以及此Designer对象,并将其user_id设置为创建的新User 。 如果我可以访问控制器的代码,这很容易。 但是对于Devise,我无法访问此注册控制器。 注册后创建User和Designer的正确方法是什么?

Rails&Ransack – 根据模型中的定义进行排序/搜索

比方说,我有一个带有start_date和length的事件(表示天数的整数)。 在模型中,我将end_date定义为start_date + length.days就像您期望的那样: def end_date start_date + length.days end 所有在模板中工作正常,我可以使用event.end_date显示开始日期加上长度设置为多天, 但是 ,我现在想要使用Ransack在结束日期之前对事件进行排序。 start_date的排序链接如下所示: 如果我为end_date( )尝试相同的操作,它很遗憾地失败,因为我认为它正在寻找end_date作为表中的列而没有找到它。 我只是愚蠢,还是我想做一些Ransack根本不做的事情?

Paperclip Errno :: EACCES(权限被拒绝 – /系统)

我的生产环境是:ruby 1.9.2-p320,rails 3.2.7,paperclip 3.1.4,mysql,Ubuntu 8.10 x86 64bit。 当我尝试使用回形针上传文件时,我有一个Errno:EACCES权限被拒绝/系统错误。 没用,说本地不会发生这种情况。 我检查了公共目录权限,它是775,公共/系统权限是777以及它的所有内部目录。 tmp目录权限是:775。 此外,用于部署应用程序的用户是www-data:root 模型的附件设置如下: has_attached_file :fichier, :path => “/system/:attachment/:id/:style/:filename”, :url => “/system/:attachment/:id/:style/:filename” 我无法找出为什么我会收到此错误。 有人有想法吗? 谢谢

rake db:migrate error(未找到函数’inotify_init’)

我刚刚完成了在我的旧Mac书上设置我的rails环境并遇到了这个错误。 我安装了FFI和rb-inotify。 我也再次运行了bundle install。 我看了看 https://github.com/ffi/ffi/issues/66 和 https://groups.google.com/forum/?fromgroups=#!topic/ruby-ffi/gj3_k34o80k 这两个都表明这是一个特定于Linux的API。 有一个建议在第二个链接上说我应该删除那个gem以及依赖它的东西,但是我对删除似乎依赖它的FFI犹豫不决。 您建议采取什么行动? 非常感谢有关此事的任何建议。 编辑:我正在运行rails 3.2.7(今晚更新到3.2.11)。 编辑2:我发现: Rubygems:如何添加特定于平台的依赖? 。 这有用吗? 编辑3:你认为它可能与rbenv有关吗? 编辑4:我将我的开发gem从rb-inotify更改为rb-fsevent,运行bundle install然后执行db:migrate。 它继续运行迁移。 嗯……我问我的团队成员使用macs尝试执行rake db:migrate,因为我们的Linux开发人员将rb-inotify添加到我们的gem集合中。 此链接可能对以这种方式提供帮助的人有所帮助: https : //supportbee.com/devblog/2012/07/18/using-platform-dependent-gems-rb-inotify-and-rb-fsevent/ 编辑5:我一直在看卫兵gem ,特别是这部分: 我添加了这个,它将执行rake db:migrate,但我仍然得到一个非常类似的错误列表: Could not open library ‘libgtk-x11-2.0’: dlopen(libgtk-x11-2.0, 13): image not found. 我想我正在进步到一个完整的解决方案! 编辑7:看看这个stackoverflow问题是由于libnotify gem导致的剩余错误: 升级到Rails 3.1后图像未找到错误,如何修复? 。 它建议这样做: gem ‘libnotify’ if /linux/ =~ RUBY_PLATFORM […]

Turbaroinks与载波图像作为CSS背景图像

我一直在使用turbolinks,但最近我得到了这个烦人的bug。 通过carrierwave上传的图像在第一个请求中以绝对URL加载到站点中,但是当您通过turbolinks开始在站点中浏览时,所有载波图像都会更改为相对路径。 元素工作正常,但图像作为CSS背景图像加载,它们不会出现。这显然只发生在chrome(我有Versión31.0.1650.57m)。我做了一个跟踪通过控制台和所有图像都加载到文档中,所以我去了Inspector并禁用/启用了特定元素的属性’background-image’并且发生了魔法:图像出现了。 我正在使用rails 3.2.14,带有turbolinks: gem ‘turbolinks’, ‘1.3.1’ gem ‘jquery-turbolinks’, ‘2.0.1’ 我已经在Firefox 25.0.1上测试了它,它运行正常。 有什么建议吗? 谢谢

添加accepts_nested_attributes_for时,Fields_for消失

我在Rails 3.2.5中做了一个嵌套的表单,但是当我添加accepts_nested_attributes_for我的fields_for消失时(它们只是停止在我的表单中显示)。 这是我的模特: class Product < ActiveRecord::Base attr_accessible :title, :description, :variants_attributes has_many :variants accepts_nested_attributes_for :variants validates :title, presence: true end 我的第二个模特是 class Variant < ActiveRecord::Base belongs_to :product attr_accessible :price, :sku, :weight, :inventory_quantity, :product_id end 在我看来,我有 {:multipart => true} do |f| %> Producto Nuevo ** ** _inventory_fields.html.erb **之间的部分是未打印的部分。 当我在我的产品模型fields_中删除accepts_nested_attributes_for时,再次开始显示,但我的表单不起作用。 发生了什么?!?!

如何在Rails模型的回调中访问params?

我有一个模型的回调,需要根据表单中输入的另一个字段创建一个依赖对象。 但是params在回调方法中是未定义的。 有没有其他方式来访问它? 从表单传递回调方法参数的正确方法是什么? class User < ActiveRecord::Base attr_accessible :name has_many :enrollments after_create :create_enrollment_log private def create_enrollment_log enrollments.create!(status: 'signed up', started: params[:sign_up_date]) end end

如何在各种环境中使用和配置omniauth与yahoo,google,facebook策略?

我正在开发一个Rails 3.2应用程序,允许用户通过多个提供商进行身份validation… Yahoo,Google,Facebook和/或Twitter。 我们正在使用omniauth,虽然我理解基本的工作流程,但我找不到一个包含文档,说明应如何配置这些特定的提供程序,以及如何设置Rails应用程序,以便我可以正确地测试/使用这些策略开发,测试和生产环境。 所以我的问题: 对于这些提供商(雅虎,谷歌,推特,脸书)中的每一个,需要哪些步骤来为omniauth单独配置每个提供商,以便它们可以用于开发,测试和生产环境? 配置Rails应用程序以正确使用每个提供程序以适应我正在运行的任何环境的最佳/推荐方法是什么? 谢谢 – wg

将参数添加到范围

我有一个ActiveRecord查询,例如: @result = stuff.limit(10) 其中stuff是一个活动的记录查询,其中where子句,order by等等… 现在我想为什么要将这样的魔法数字传递给控制器​​? 那么你认为定义“limit(10)”的范围并使用它是一个好习惯吗? 语法如何?