Questions tagged «ruby-on-rails»

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

5
Rails中受保护的私有方法
Ruby的方法可见性(公共方法,受保护方法和私有方法)已在本博客文章之类的地方得到了很好的解释。但是在Ruby on Rails中,由于框架的设置方式,它似乎与常规Ruby应用程序中的稍有不同。因此,在Rails模型,控制器,助手,测试等中,何时/不适合使用受保护的方法或私有方法? 编辑:谢谢你到目前为止的答案。我了解Ruby中保护和私有的概念,但我希望更多地解释在Rails应用的各个部分(模型,控制器,助手,测试)的上下文中使用这些可见性的典型方式。 。例如,公共控制器方法是操作方法,应用程序控制器中受保护的方法用于需要多个控制器访问的“帮助器方法”等。


4
最佳Ruby on Rails WebSocket工具[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 我在Rails 3中开始了项目,我需要添加通知(例如Facebook)。最好的方法是将WebSocket用于iPad之类的支持设备,但是我找不到能在Rails中轻松实现它的任何好的工具。我找到了Pusherapp,但价格不菲,我也不认为将数据提供给第三方公司是明智的。所以需要做的事情: 开源的 某种渠道支持 Rails的助手(和Rails 3一起使用)

5
Rspec 3如何测试Flash消息
我想使用rspec测试控制器的动作和Flash消息是否存在。 动作: def create user = Users::User.find_by_email(params[:email]) if user user.send_reset_password_instructions flash[:success] = "Reset password instructions have been sent to #{user.email}." else flash[:alert] = "Can't find user with this email: #{params[:email]}" end redirect_to root_path end 规格: describe "#create" do it "sends reset password instructions if user exists" do post :create, email: …

4
关闭布局以执行一项操作
我的情况:ReportsController的View动作应呈现纯HTML,而不是作为文件呈现(在浏览器中查看并在以后保存)。因此,对于渲染,我使用视图模板view.html.erb,并且我需要关闭此操作的所有布局。但是在此控制器的其他操作中,布局应保持不变。只能对整个控制器关闭,如下所示: ReportsController < ApplicationController layout false 但这做错了:(对于所有动作,我试图在动作中使用类似以下的方式: def view @report = Report.new(params[:report]) unless @report.valid? render :action => 'new' and return else render :layout => false end end 我该怎么办?

2
为什么在多态关联中没有外键?
为什么在多态关联中没有外键,例如下面表示为Rails模型的外键? class Comment < ActiveRecord::Base belongs_to :commentable, :polymorphic => true end class Article < ActiveRecord::Base has_many :comments, :as => :commentable end class Photo < ActiveRecord::Base has_many :comments, :as => :commentable #... end class Event < ActiveRecord::Base has_many :comments, :as => :commentable end

11
如何在导轨上销毁上“验证”
关于销毁宁静的资源,我想保证一些事情之后我才能继续销毁操作?基本上,如果我注意到这样做将使数据库处于无效状态,我希望能够停止销毁操作?销毁操作上没有验证回调,因此如何“验证”是否应接受销毁操作?

3
使用bundle exec rake还是只是rake?
我只使用了rake命令就学会了Rails rake db:migrate;但是,我读到我应该使用bundle exec rake ...而不是plain rake。现在我对使用哪个感到困惑。 我应该使用bundle exec rake而不是简单使用rake还是仅仅是偏爱?任何见解将不胜感激!谢谢!

1
如何在ERB中转义ERB标签
我有一个简单的fixture.yml文件: label: body: "<%= variable %>" 问题在于,ERB代码是作为加载固定装置的一部分而解析的,而我实际上希望将主体按字面意思是“ <%=变量%>”(未插值)。 如何逃脱ERB标签?

16
在Windows上运行Ruby / Rails的局限性
在RoR的安装文档中,它提到在Windows上运行Ruby on Rails有很多限制,并且在某些情况下,整个库无法使用。 这些限制有多严重?我应该始终默认使用Linux来编码/运行RoR吗?Iron Ruby是否有望解决这些限制,或者它们是操作系统本身的核心? EDIT感谢您提供有关在Linux上安装和运行的答案,但是我确实试图理解安装文档和非工作库中所引用的功能限制-我试图找到指向注释的链接,但这确实是在安装中引用的内容在安装我认为的msi软件包时请阅读我 编辑 感谢您最近对IronRuby的引用,这肯定是一个值得关注的项目,并且显然,它是.NET语言,因此,如果能够兑现承诺,它将具有无价的价值。最终,以我为例,我只是硬着头皮安装了Ubuntu服务器。 <bias>我应该在多年前完成</ bias>

5
Rails —使用没有STI的类型列?
我想使用type不调用单表继承(STI)的列-我只想type成为包含的普通列String。 我如何才能做到这一点而又不用Rails期望我具有单表继承并抛出异常The single-table inheritance mechanism failed to locate the subclass...This error is raised because the column 'type' is reserved for storing the class in case of inheritance.? 有关如何执行此操作的任何想法?

4
Rails中Thread.current []使用的安全性
我对在Thread.current哈希表中存储信息的做法(例如current_user,当前子域等)的看法一直存在分歧。已经提出了将该技术作为简化模型层中的后续处理(查询范围,审计等)的一种方法。 为什么我的线程变量在Rails中是间歇性的? 在Rails的API包装器中使用Thread.current的替代方法 Thread.current []值和类级别属性是否可以在Rails中安全使用? 许多人认为这种做法不可接受,因为它破坏了MVC模式。其他人则对这种方法的可靠性/安全性表示担忧,而我的两部分问题主要针对后者。 Thread.current在整个周期中,是否保证哈希可以对一个且只有一个响应可用并且是私有的? 我了解到,在响应结束时,线程很可能会移交给其他传入请求,从而泄漏存储在中的任何信息Thread.current。在响应结束之前清除此类信息(例如通过Thread.current[:user] = nil从控制器执行after_filter)是否足以防止此类安全漏洞? 谢谢!朱塞佩

6
Ruby on Rails:清除缓存的页面
我有一个RoR应用程序(ruby v1.8.7; rails v2.3.5)在开发环境中缓存页面。这不是什么大问题,但是缓存页面的a元素不正确。 我没有对development.rb文件进行任何更改,也没有向控制器添加任何缓存命令。 我曾尝试清除该网站(localhost)的浏览器(OSX上的Firefox 3.5)的cookie和页面缓存。我还重新启动了Mongrel。似乎没有任何帮助。 我想念什么?

9
使用ActiveRecord,有一种方法可以在after_update期间获取记录的旧值
使用一个简单的示例进行设置:我有1个表(Totals),其中包含amount第二个表(Things)中每个记录的列的总和。 当thing.amount得到更新,我想简单地将旧值和新值之间的差异total.sum。 现在,我要self.amount在期间减去before_update并self.amount在期间添加after_update。这使WAY对更新的成功过于信任。 约束: 我不想简单地重新计算所有交易的总和。 问题:很简单,我想在after_update回调期间访问原始值。您想出了什么方法呢? 更新:我同意卢克·弗朗克的想法。在after_update回调期间,您仍然可以访问self.attr_was正是我想要的值。我还决定采用一个after_update实现,因为我想在模型中保留这种逻辑。这样,无论我将来决定如何更新事务,我都会知道我正在正确更新事务总和。感谢大家的实施建议。

3
如何在Yaml中创建关联数组列表
我正在尝试将一些配置变量存储在以关联数组aka字典表示的yaml中。这是我的做法: content_prices: - {country: AU, price: 6990000} - {country: AT, price: 4990000} - {country: BE, price: 4990000} 当我尝试从我的ROR初始化文件中解析它时,这会产生一个异常: 未定义的方法'symbolize_keys!' 对于nil:NilClass 这是我的初始化方式: Config = YAML.load_file("#{Rails.root}/config/prices.yml")[Rails.env].symbolize_keys! 我猜我的Yaml语法错误,那么如何正确编写呢?

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.