Tag: ruby on rails

在Rails 2应用程序中使用ssl_requirement强制SSL

我有一个需要在SSL下运行的Rails应用程序。 我尝试了ssl_requirement,但似乎我必须输入每个控制器中的所有操作。 是否有任何方法可以在应用程序控制器中使用ssl_requirement添加before_filter,以便当用户请求在http时,应用程序将自动重定向到https? 谢谢大家。 🙂

表单提交按钮仅在重新加载后有效

我有一个构建表的索引页面,我试图允许用户编辑表中的行。 我试图以最基本的方式做到这一点 – 没有javascript,ajax等,除非Rails提供它。 我的表在index方法中显示正常,并且有一个表单作为表中的最后一行,可用于添加新行。 新表格工作正常。 每行都有一个编辑链接,可以路由到控制器的编辑方法。 控制器设置要编辑的对象,并使用要编辑的行中的表单呈现索引。 我的问题是这个表单不会提交,但如果我刷新页面就会提交。 页面将在刷新后提交的事实非常令人困惑。 我没有看到刷新会如何做什么不同然后点击链接(它应该仍然通过相同的路由,相同的变量对吗?)我看不清楚刷新前后的formshtml有什么区别。 有什么想法可能会发生什么? 我不确定甚至开始查看的代码是什么,但是这里有。 index.html.erb … … _form_in_table.html.erb _bom_in_table.html.erb boms_controller.rb … def edit @bom = Bom.find(params[:id]) @li = @bom.line_item @boms = @li.boms.sorted_by_part_number @parts = Part.sorted_by_number render ‘index’ end … 如果这对解密代码/意图很有用,我有line_items,parts和boms的集合; line_item有很多boms,line_item有许多部分通过boms。 除了零件/订单项关系外,boms还有一个数量。 Bom是物料清单的缩写。 @li是被操纵的line_item。 我遇到问题的表单是查看/添加/编辑属于订单项的boms(数量和部件)的集合。 添加日志 Started GET “/line_items/8/boms” for 127.0.0.1 at 2013-10-14 14:27:27 -0400 Processing […]

ActiveRecord包含

我使用以下模型制作了锻炼应用程序: 用户 常规 升降机 演习 相关信息 例程属于用户 例行程序有许多升降机(这是运动和常规之间的联接) 电梯属于运动 信息(套)属于电梯 我正在深入研究ActiveRecord查询,并特别包括处理我遇到的n + 1问题。 当我展示整个例程时,显示: 例程名称 用户名 每个电梯的练习名称 每个电梯的设置 如果我想减少查询,我可以简单地加载如下所示的所有内容: a = Routine.includes(:user,:lift,:exercise,:infos)并循环遍历所有这些以找到我想要的东西? 或者我必须打破它更多说: a = Routine.includes(:user,:lift) b = Lift.includes(:exercise,:infos) 为了缩小我的查询量。 如果这个问题不够明确,请告诉我。

undefined方法`stringify_keys!’ 铁轨上的ruby

我有这个代码: def addcar @car = Car.new(params[:car]) render :action => ‘list’ end ‘car’, :action => ‘addcar’, :car => cell.to_s %> 它给了我这个错误: undefined方法`stringify_keys!’ 为“本田”:字符串 我不明白有什么问题:car 。

删除/销毁在Rails中不起作用

我正在尝试使用我在tags_controller页面中编写的一段代码来使用删除按钮; def destroy @tag = Tag.find(params[:id]) @tag.destroy redirect_to :back, notice: ‘Tag was successfully deleted!’ end 当我从本地主机运行时,它会抛出exception,如下所示; Routing Error No route matches [DELETE] “/admin/tags/37/edit” Rails.root: /Users/laurenwoodhams/Desktop/PROJECT/RAILS-BLOG/-t 这是我的配置路线; Rails.application.routes.draw do get ‘/login’ => ‘admin/sessions#new’ get ‘/logout’ => ‘admin/sessions#destroy’ namespace :admin do resources :posts resources :tags, except: [:index] resources :sessions, only: [:new, :create, :destroy] resources :administrators, only: [:index, […]

如何调试请求需要花费太多时间才能完成?

XHR请求随机需要花费太多时间才能完成。 我找不到发生这种情况的地方。 如果有的话。 当我在可疑的ruby代码块周围启用探查器时,阻塞就发生在其他地方。 然而,我无法用webrick重现它。 有任何想法吗? UPD这是一个使用续集连接到postgresql的rails应用程序。 以下是我正面临的问题的更多细节。

清洁方式按指定的顺序通过id查找ActiveRecord对象

我想在给定一组id的情况下获得一个ActiveRecord对象数组。 我认为 Object.find([5,2,3]) 将返回一个数组,其中包含对象5,对象2,然后按顺序返回对象3,但我得到的数组按对象2,对象3和对象5排序。 ActiveRecord Base 查找方法API提到您不应该按照提供的顺序期望它(其他文档不提供此警告)。 一个可能的解决方案是按相同顺序的ID数组查找的? ,但订单选项似乎对SQLite无效。 我可以编写一些ruby代码来自己对对象进行排序(有点简单,缩放比例较差或缩放比较复杂),但有更好的方法吗?

设计用户档案link_to

所以我目前正在尝试找出使用的路径,因此当用户点击“查看个人资料”时,链接将是domain.com/USERNAME而不是domain.com/profiles/show 我目前的链接代码是 我的routes.rb设置为 get ‘/:id’ to: ‘profiles#show’

如何设置Rails 4,Resque 2与Foreman一起运行?

我试图在Heroku上运行一个简单的Rails应用程序,其中包含一些后台任务。 该应用程序部署到Heroku,因此我在本地使用Foreman运行它,以便它与生产中的工作方式类似。 但是,我不能让Resque开始并熬夜。 即使没有提交任何任务,它也会每次都关闭。 这就是设置的方式。 Gemfile(基于resith的github页面) gem “resque”, “~> 2.0.0.pre.1”, github: “resque/resque” Procfile web: bundle exec rails server -e $RAILS_ENV -p $PORT resque: bundle exec rake environment resque:work 当我运行’foreman start -e config / dev.env’时,一切都开始启动,但随后Resque SIGTERMS。 这是日志: 16:26:56 resque.1 | Loading Rails environment for Resque 16:26:56 resque.1 | D, [2014-03-12T16:26:56.237941 #22530] DEBUG — : resque-2.0.0.pre.1: Starting […]

Rails 4 jQuery,javascript和咖啡脚本无法正常工作

我是rails和web开发的新手,尽管我在控制系统和固件中有近二十年的C / C ++,而且还有很多shell和perl脚本。 如果没有明确地包含它,我就无法让jquery工作,即使它在application.js清单中,我也无法让任何单独的coffeescripts工作。 Ubuntu 14.04LTS,ruby 2.2.1p85,rails 4.2.0 的application.js //= require jquery //= require jquery_ujs //= require turbolinks //= require_tree . application.html.erb _header.html.erb My Application Title true %> true %> … 的Gemfile source ‘https://rubygems.org’ # Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’ gem ‘rails’, ‘4.2.0’ # Use sqlite3 as the database for Active […]