Tag: ruby on rails 4

只有在逗号之前添加空格?

有没有办法在字符串中的逗号之后添加空格,只有它不存在。 例: word word,word,word, 最终会成为 word word, word, word, ruby或rails中是否有函数可以执行此操作? 这将用于数十万个句子,因此它需要很快(性能很重要)。

没有gem的Paginate Next,Previous,Name.order(:id).limit(10).offset(0)的按钮

我一直在寻找解决我问题的方法一个多星期了。 由于没有下一个/上一个function而没有时间,我有一个我失去10分的任务。 我仍然想弄清楚这一点。 我创建了一个简短的单页网站,其中包含rails generate scaffold Ripple name:string message:text url:string ,显示最近发布的10个post的索引(名称,消息,created_on,link_to“show”)。 我仍然需要创建下一个,之前的,最新的,最旧的链接,以显示下一个10,前10 ….结果。 我的代码。 app\controllers\ripple_controller.rb class RipplesController < ApplicationController before_action :set_ripple, only: [:show, :update] before_action :restrict_destroy_edit, only: [:edit, :destroy] before_filter :set_page helper_method :link_name_to_url, :next_button, :previous_button, :newest_button, :oldest_button, :is_next_page_available, :is_previous_page_available RIPPLES_PER_PAGE = 10 def index @ripples = Ripple.order(:id).limit(RIPPLES_PER_PAGE).offset(@page * RIPPLES_PER_PAGE) end #All my show, new, destroy, […]

为什么我的Rails控制器操作中需要`render layout:false`?

我使用remote: true来自使用Jails in Rails指南的remote: true成语: # new.html.slim = form_for @thing, remote: true do |f| f.text_field :whatever f.submit ‘Submit’ # thing_controller.rb layout ‘foo’ def create end # create.js.erb alert(‘foobar’) 这失败了,因为create.js.erb由于某种原因在’foo’布局中呈现并以html而不是javascript的forms返回,尽管请求被正确处理为Javascript: Processing by ThingsController#create as JS Parameters: {“utf8″=>”✓”, “commit”=>”Submit”} Rendered things/create.js.erb (0.6ms) (无论我是否在控制器操作中有明确的respond_to格式块,问题都是一样的。) 如此处和此处所述 ,在控制器操作中包括render layout: false可修复问题: # thing_controller.rb layout ‘foo’ def create render layout: false end […]

Rails会话没有保存

我正在将Rails应用程序从Rails 2直接升级到Rails 4.我正在使用带有CookieStore的新/config/initializers/session_store.rb文件,但出于某种原因我的会话没有保存。 当尝试按照render :text => “#{request.session_options[:id]}”方式执行某些操作时render :text => “#{request.session_options[:id]}”每次刷新时都会获得一个新的会话ID。 我尝试过不同的浏览器,所有人都应该接受cookie。 我不知道是怎么回事。 为什么这些会议不会持续?! 编辑:谢谢大家的建议。 这里有一些信息,还有一些我注意到的事情: 首先,关于我的设置 – 我在Windows 7机器上的Ubuntu VM上使用Rails 4 / Ruby 2到RVM运行服务器。 虽然我正在从Rails 2升级,但这只适用于models / controllers / views / etc – 我为所有支持基础架构生成了一个新的Rails 4应用程序。 我在JUST设置会话然后显示的同一个VM上创建了另一个应用程序,并且工作正常。 会话存储的内容根据用户的行为略有不同,但通常只包含一个用户ID(只是一个整数),偶尔会多一点 – (我首先注意到这在尝试传递OAuth令牌时表现出来)来自OAuth的gem。) 我注意到如果VM的系统时钟落后于Windows 7主机时钟,则用户ID会话保持不变。 这会导致其他问题,尤其是OAuth,但似乎只是某个时间问题。 我尝试过从我的环境/ development.rb中删除时区,但这没有帮助。

Rails哈希值具有未知键和强参数

我有一个rails应用程序,它在一个名为properties的字段中存储一个序列化哈希。 虽然哈希键是未知的,但我不知道如何通过强参数来允许它。 谷歌搜索时,我发现了这个: https : //github.com/rails/rails/issues/9454 ,但我无法确切地知道解决方案是什么。 所以基本上,我的问题是:如何配置强参数以允许具有未知密钥的哈希? 谢谢大家的帮助!

如何从Rails 4中的db:datetime记录格式化时间和日期?

我在视图中有一个var ,它将日期时间数据库记录中的日期和时间作为UTC格式返回。 输出如下: 2014-01-21 03:13:59 UTC 我该如何格式化? Date.parse(var)将在IRB中给出#=> Tue, 21 Jan 2014但在RAILS 4中的类型错误: “没有将ActiveSupport :: TimeWithZone隐式转换为String” 我最终想要显示日期; 格式化为: %m/%d/%Y我唯一的选择不能是: to_s和regex这个对吗? 有人请告诉我RAILS方式。

update_all with a method

让我们说我有一个模型: class Result < ActiveRecord::Base attr_accessible :x, :y, :sum end 而不是做 Result.all.find_each do |s| s.sum = compute_sum(sx, sy) s.save end 假设compute_sum是一个可用的方法,并进行一些无法转换为SQL的计算。 def compute_sum(x,y) sum_table[x][y] end 有没有办法使用update_all ,可能是这样的: Result.all.update_all(sum: compute_sum(:x, :y)) 我有超过80,000条记录需要更新。 find_each每条记录find_each创建自己的BEGIN和COMMIT查询,并且每条记录都会单独更新。 或者还有其他更快的方法吗?

找不到带下划线的路线或者没有正确对待它

我在路线中有这个: Rails.application.routes.draw do namespace :api do namespace :v3_4 do # ….. 和控制器app/controllers/api/v3_4/base_controller module Api module V3_4 class BaseController < ApplicationController # …… end end end 和app/controllers/api/v3_4/another_controller module Api module V3_4 class AnotherController < ApplicationController end end end 耙路线: Prefix Verb URI Pattern Controller#Action api_v3_4_test GET /api/v3_4/test(.:format) api/v3_4/base#test api_v3_4_one GET|OPTIONS /api/v3_4/one(.:format) api/v3_4/another#one api_v3_4 GET|OPTIONS /api/v3_4/two/:id(.:format) api/v3_4/another#two […]

Ruby on Rails Global ActiveRecord :: Enum

我真的很喜欢Rails 4新的Enumfunction,但我想使用我的枚举 enum status: [:active, :inactive, :deleted] 在每个模型中。 我找不到任何方法如何在config/initializes/enums.rb并包含每个模型 我是Ruby on Rails新手,需要你的帮助才能找到解决方案

Rails没有使用我的全局Ruby版本

我想在Ruby 2.1.0中使用Rails,但它使用的是Ruby 1.9.3(系统版本)。 我正在使用rbenv来管理我的Ruby版本。 我的步骤是: $ rbenv install 2.1.0 $ rbenv global 2.1.0 $ sudo gem install rails -v 4.0.2 $ rbenv rehash $ rbenv versions system * 2.1.0 (set by /home/dennis/.rbenv/version) $ ruby -v ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux] $ rails new app && cd app $ rails server 根据localhost:3000/rails/info/properties ,Rails使用的是Ruby 1.9.3(x86_64-linux)。 来自rails […]