Tag: 的Ruby on 轨道

Rails将默认DateTime设置为now

在我的应用程序中,我有团队,每个团队每周都有一个游戏时间。 我希望将游戏时间设置为“现在”作为默认值。 我的桌子是这样设置的 create_table “teams”, force: true do |t| t.datetime “wk1_time” end 我创建了一个迁移,它看起来像这样: class ChangeDateTimeDefault DateTime.now end edn 当我运行rake db:migrate时出现错误。 我的语法错了还是我错过了别的什么?

Rails 4.0.0应用程序中ActiveSupport的未定义方法“all”

我是开发rails应用程序的新手,所以在大多数情况下,我只依靠rails generate命令来为整个应用程序制作支架。 虽然我的应用程序的每个其他部分都可以正常工作,但这个部分在自动生成后会立即引发错误。 错误如下: NoMethodError in ConfigurationsController#index undefined method `all’ for ActiveSupport::Configurable::Configuration:Class 这是包含所述无方法调用的代码片段 def index @configurations = Configuration.all end 这是所述模型 class Configuration < ActiveRecord::Base belongs_to :users, class_name: 'User', foreign_key: 'user_id' end 我添加了belongs_to部分…无论如何,当我通过http://localhost.localhost:3000 / users / 1 / configurations /运行它时,会弹出错误! (是的,我使用嵌套路线) 所以我点击rails控制台来检查Configuration.all返回什么,然后看看 2.0.0-p247 :004 > Configuration.all Configuration Load (0.3ms) SELECT “configurations”.* FROM “configurations” => #<ActiveRecord::Relation [#]> […]

execjs在windows上做michael hartl教程的问题…用户#index中的ExecJS :: RuntimeError

通过教程,我是ruby,rails和walk(爬行?)的新手。 第二个项目使用scaffolding创建一个由名称和电子邮件地址组成的用户。 当我尝试查看用户屏幕时,我得到以下内容: ExecJS::RuntimeError in Users#index Showing /home/max/rails_proj/demo_app/app/views/layouts/application.html.erb where line #6 raised: 湉異⁴牅潲㩲唠歮潮湷漠瑰潩⼢浴⽰硥捥獪〲ㄱ㤰㔲㐭㜲ⴲ㠱㝮穩ⴰ⸰獪•灳捥晩敩⹤਍ (in /home/max/rails_proj/demo_app/app/assets/javascripts/users.js.coffee) Extracted source (around line #6): 3: 4: DemoApp 5: 6: 7: 8: 9: Rails.root: /home/max/rails_proj/demo_app Application Trace | Framework Trace | Full Trace app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__1031573605_1065816420′ app/controllers/users_controller.rb:7:in `index’ 我正在使用windows xp,cygwin,rails 3.1.0(我已经尝试了新的rc1),ruby 1.8.7。 我在谷歌上发现了这个错误,并且据说我尝试使用了一个修复程序(execjs gem 1.2.9),但这似乎并没有为我解决….我已经尝试了所有的修复(到了最好的我有限的ruby等能力此时)但似乎没有任何工作,虽然错误信息有时不同 – 仍然在同一行上的错误。 我试图卸载并重新安装cygwin,ruby,rails等……到目前为止无济于事…… 任何反馈都会很棒!

关联之前的“保存前”回调

保存父对象时,如何在关联上调用“before_save”回调? 例如: class Company < ActiveRecord::Base belongs_to :user before_save Proc.new { … } # Not called. end class User { :name => “Kevin Sylvestre”, :company_attributes => { :city => “Waterloo”, :region => “Ontario” } } } @user = User.new(params[:user]) @user.save 是对用户调用“before_save”,而不是在公司调用。 谢谢。

修改has_many的行为还是使用scope?

我有一个看起来像这样的类: class User :users_companies end 对于普通用户,我希望user.companies引用标准关联方法,但是当用户是管理员时,我想要User.all (即管理员可以访问所有公司)。 我能想到的最简单的方法是实现这个(以及我过去一直做的)是在Company类上使用一个范围,例如: scope :accessible_by, lambda { |user| … } 唯一的问题是,这感觉不对。 而不是编写包含以下内容的控制器操作: @companies = Company.accessible_by(current_user) 我觉得写作更舒服 @companies = current_user.companies 有没有一种方法可以覆盖User#companies方法以适应这种行为? 或者,我是否应该对使用公司范围感到满意?

使用敏感信息(如密码)rails保护数据库列

我有一个rails应用程序,喜欢这么多rails应用程序,有用户。 在我的用户模型中,我有password和salt列等。 有什么方法可以保护这些不会出现在我debug @user或我渲染JSON ? 当然,我可以确保每次使用时都省略这些,但有没有办法可以确保它们不会出现在任何地方? 也许他们可能是私人领域? 它们仅在我的User模型和我的Session控制器中需要,但我可以在User中创建一个方法,将给定的密码与正确的密码进行比较,然后只在“用户”模块中访问变量。 这会有所帮助,还是会在这两个地方(和其他地方)呈现?

如何在Rails上实现无cookie的Flash消息?

我正在开发一个Facebook应用程序,所以我不能依赖于P3P (隐私首选项目),这是一个该死的痛苦(参见幻灯片共享的幻灯片18和19关于Rails和Facebook应用程序的图片) … 在Facebook应用程序中,从浏览器的角度来看,每个cookie都是第三方cookie 。 许多浏览器默认阻止它们。 所以我的问题是: 如何在不依赖cookie的情况下实现Flash消息? 更新: 我相应地修改了session_store.rb和DB。 现在会话存储在数据库中但闪存消息依然依赖于cookie …请问有什么想法吗? 更新#2: 我终于找到了一个解决方法,请参阅下面的答案。 最好的办法是ajax一切 (根据上面链接的slidehare)但作为一个快速修复我的解决方案应该工作。

克隆(又名重复)一个记录

我需要复制一条记录,除了cource的ID之外,还有原始的相同属性。 我做: 在视图中: “clone”, :id => Some_Existing_ID %> 在控制器中: def clone @item = Item.find(params[:id]).clone if @item.save flash[:notice] = ‘Item was successfully cloned.’ else flash[:notice] = ‘ERROR: Item can\’t be cloned.’ end redirect_to(items_path) end 但没有任何反应! 在控制台中我发现克隆生成没有ID的副本。 有任何想法吗 ? *> BTW:我正在运行Rails 2.3.5和Ruby 1.8

允许来自特定站点的X-Frame-Options ALLOW-FROM

我正在使用rails应用程序来从abc.com提供页面。 在其中,我在应用程序控制器中设置响应头(对于通过before_filter的每个请求),以便只能通过iframe从特定站点(xyz.com)访问它,通过以下代码: def set_x_frame_options response.headers[“X-Frame-Options”] = “ALLOW-FROM http://www.xyz.com” end 问题是,我不仅可以从xyz上的abc.com访问该页面,还可以访问任何其他网站。 我想限制只访问xyz.com。 当我在chrome控制台中检查响应头时,我可以看到正确传递了X-Frame-Options。 所有浏览器都会发生这种情况。 我错过了什么吗?

Rails中的助手 – 构建html字符串时最好的方法是什么?

我通常会这样写助手: def bloco_vazio (texto = “”, btn = “”, args={}) titulo = content_tag :h3, “Vazio!” p = content_tag :p, texto content_tag :div, (titulo + tag(:hr) + p + btn ), args end 但我经常看到人们使用其他方法,如: def flash_notice html = “” unless flash.empty? flash.each do |f| html << "” html << "×” html << f[:text].to_s html << "” […]