Tag: ruby on rails 4

如何创建Rails 4引起争论的关注点

我有一个名为User的ActiveRecord类。 我正在尝试创建一个名为Restrictable ,它接受一些像这样的参数: class User < ActiveRecord::Base include Restrictable # Would be nice to not need this line restrictable except: [:id, :name, :email] end 我想提供一个名为restricted_data的实例方法,它可以对这些参数执行某些操作并返回一些数据。 例: user = User.find(1) user.restricted_data # Returns all columns except :id, :name, :email 我该怎么做呢?

Rails – 获取小时,分钟和秒的时差

我正在寻找一种惯用的方法来获取自给定日期以来的时间,小时,分钟和秒。 如果给定日期是2013-10-25 23:55:00,当前日期是2013-10-27 20:55:09,则返回值应为45:03:09。 time_difference和time_diff gems不适用于此要求。

Rails 4.1 ActiveRecord :: relation不再像Array一样

在Rails 4.0.4中这段代码工作: mailboxes = Mailbox.order(:mailbox) mailboxes.keep_if do |mailbox| # test end 在Rails 4.1.0中它打破了NoMethodError (undefined method keep_if for ) 并且必须改为 mailboxes = Mailbox.order(:mailbox).to_a mailboxes.keep_if do |mailbox| # test end 我没有找到任何相关信息 任何的想法?

工作的twitter-typeahead例子?

我正在尝试将twitter-typeahead-rails gem安装到我的应用程序中。 我已经按照几个不同的教程,但所有教程都会导致错误。 有没有人有这个gem的工作示例?

Ruby on Rails send_file在刷新页面之前不起作用?

我正在研究Rails服务器,我可以从中下载本地存储的电影和动漫等。 这有点工作,但当我点击下载链接时,我必须刷新页面,以便下载实际开始。 这是处理下载的控制器: class DownloadController < ApplicationController def index @title = params[:title] @name = params[:name] @path = '/media/sf_Anime,_VN,_LN/Watching, not watched yet/'+@title+'/'+@name send_file( @path ) end end 这是链接到该控制器的链接: 编辑:我今天做了一些测试,并注意到如果我尝试发送较小的文件(文本或图像),下载链接会立即生效。 我还注意到下载链接实际上适用于电影,但下载开始需要20-30秒。 你知道导致这种延迟的原因吗?

服务器上未收到日历事件通知

我正在尝试观看谷歌日历活动。 我写了这段代码: def watch_calendar_event result = @client.execute( api_method: @calendar_api.events.watch, parameters: { calendarId: ‘primary’ }, body_object: watch_hash, headers: {‘Content-Type’ => ‘application/json’} ) if result.status == 200 watch_data = result.data @calendar.update booking_expiration: watch_data.expiration, booking_id: watch_data.id, booking_resource_id: watch_data.resourceId, booking_resource_uri: watch_data.resourceUri, watching_event: true end rescue Exception => ex raise GoogleCalendarException, ex.message end 我正在获得200条成功消息,其中包括booking_id,resource_id和resourceUri等其他详细信息。 但是当我在谷歌日历上创建一个新事件时,我没有在我的服务器上收到任何通知。 任何想法可能是什么原因。 另请注意,我已经完成了他们在此处提出的所有问题,并且我还为此配置了https服务器。 我的webhookurl如下: https ://dev.application.com/notifications我也为此打开了路线。 […]

如何在Rails middware中找到当前的抽象路由

Rails版本:’〜> 4.2.7.1′ 狂欢版:’3.1.1′ TlDr:如何在Rails 4应用程序的中间件中获取路由as /api/products/:id或控制器以及该路由的操作。 细节: 我在rails应用程序中添加了一个类似于gem scout_statsd_rack的中间件 。 这会将以下中间件添加到rails应用程序以通过statsd发送指标: def call(env) (status, headers, body), response_time = call_with_timing(env) statsd.timing(“#{env[‘REQUEST_PATH’]}.response”, response_time) statsd.increment(“#{env[‘REQUEST_PATH’]}.response_codes.#{status.to_s.gsub(/\d{2}$/,’xx’)}”) # Rack response [status, headers, body] rescue Exception => exception statsd.increment(“#{env[‘REQUEST_PATH’]}.response_codes.5xx”) raise end def call_with_timing(env) start = Time.now result = @app.call(env) [result, ((Time.now – start) * 1000).round] end 我想要的是在中间件中找到当前路由,以便我可以发送特定于每个路由的度量。 我试过这里描述的方法,它告诉env[‘PATH_INFO’]可以提供路径,但是它提供了这样的URL参数: /api/products/4但我想要的是/api/products/:id as我的目的是跟踪/api/products/:id API的性能。 […]

Mailer无法访问用户模型中的reset_token

遇到@ user.reset_token返回nil的问题。 应用程序/视图/ user_mailer文件/ password_reset.html.erb Reset_token在User模型中声明,当我尝试使用sidekiq worker时会发生此问题。 请参阅下面的代码。 应用程序/模型/ user.rb class User < ActiveRecord::Base attr_accessor :reset_token def User.new_token SecureRandom.urlsafe_base64 end def send_password_reset_email PasswordResetWorker.perform_async(self.id) end private def create_reset_digest self.reset_token = User.new_token update_attribute(:reset_digest, User.digest(reset_token)) update_attribute(:reset_sent_at, Time.zone.now) end 应用程序/工人/ password_reset_worker.rb class PasswordResetWorker include Sidekiq::Worker sidekiq_options retry: false def perform(user_id) user = User.find(user_id) UserMailer.password_reset(user).deliver end end 应用程序/邮寄者/ user_mailer.rb class […]

Ruby on Rails 4选择多个

我有一个创建新用户的表单。 我正在尝试添加下拉选项以选择权限级别。 我希望能够为每个用户选择多个权限级别。 这是我的看法,我添加了{:multiple => true} : true}, class: “input-lg” %> 我的控制器,我补充说:permission => [] : def user_params params.require(:user).permit(:name, :email, :password, :password_confirmation, :admin, :permission => []) end 我为我的观点得到的错误,f。选择: wrong number of arguments (5 for 2..4) 你如何为Rails 4制作一个选择倍数?

Rails 4中动态表单的未允许参数

我是Rails的新手并基于此构建了一些东西 http://railscasts.com/episodes/403-dynamic-forms 但我在附加字段中存储数据时遇到问题…我有一个ProductType对象,它有许多ProductField对象。 ProductField对象也属于ProductType,Product对象属于ProductType。 因此,可以通过构造函数ProductType轻松添加新的动态字段,但是当我尝试通过Product控件在此字段中设置数据时,没有任何反应。 我确信这个问题与使用强参数有关,但是这里描述的修复和这里没有帮助。 product.rb class Product < ActiveRecord::Base belongs_to :product_type serialize :properties, Hash end product_type.rb class ProductType < ActiveRecord::Base has_many :fields, class_name: "ProductField" accepts_nested_attributes_for :fields, allow_destroy: true end product_field.rb class ProductField < ActiveRecord::Base belongs_to :product_type end products_controller.rb class ProductsController []}) end product_type_controller.rb class ProductTypesController < ApplicationController def product_type_params params.require(:product_type).permit(:name, fields_attributes: [:id, :name, […]