Tag: ruby on rail

Rails路由匹配查询参数

Rails路由非常适合匹配URL的RESTful样式‘/’分隔位,但我可以匹配map.connect配置中的查询参数。 我希望调用不同的控制器/动作 ,具体取决于’?’后面是否存在参数 。 我正在尝试这样的事…… map.connect “api/my/path?apple=:applecode”, :controller => ‘apples_controller’, :action => ‘my_action’ map.connect “api/my/path?banana=:bananacode”, :controller => ‘bananas_controller’, :action => ‘my_action’ 出于路由目的,我不关心参数的值,只要它在params散列中可用于控制器

设计:密码重置电子邮件中的edit_password_url将用户发送到url / api / v1 /

我有我的rails应用程序和Devise设置使用JSON API来进行用户注册和登录。 副作用是密码重置电子邮件中的edit_password_url意外地将用户发送到: http://localhost:3000/api/v1/password/edit?reset_password_token=ZzyPCgmspN2964ENUkSS 什么时候它不应该有api/v1/ ,并且应该发送给: http://localhost:3000/password/edit?reset_password_token=ZzyPCgmspN2964ENUkSS 我一直在寻找,但无法弄清楚在哪里解决这个问题。 我创建了以下内容: Api::V1::SessionsController < Devise::SessionsController 和 Api::V1::RegistrationsController < RegistrationsController 我有一个常规的RegistrationsControllerinheritance自devise,但不是一个常规的SessionsController,所以我只是直接从设计inheritance。 谢谢您的帮助! 编辑: routes.rb namespace :api, defaults: {format: ‘json’} do namespace :v1 do resources :users devise_for :users, :path => ”, path_names: {sign_in: “login”, sign_out: “logout”}, controllers: { omniauth_callbacks: “authentications”, registrations: “registrations”} end end devise_for :users, :path => ”, path_names: […]

未初始化的常量CarrierWave

我正在使用乘客和capistrano部署我的第一个rails应用程序。 在我尝试在浏览器中启动应用程序时遇到此错误,一切都很好。 Error message: uninitialized constant CarrierWave Exception class: NameError 您可以在http://test.ajhezaty.com/上看到详细信息。 该网站在本地完美运行,CarrierWave正确上传图像。 我尝试通过运行重启VPS服务器 sudo /etc/init.d/httpd2 restart 但它没有解决这个问题。 为您的信息安装在服务器上的gem $ gem list | grep carrierwave carrierwave (0.6.1)

Rails + CarrierWave:NoMethodError:nil的未定义方法`image_url’:NilClass

我正在使用Devise和Carrierwave。 我用设计生成了用户然后创建了一个单独的用户控制器,此页面现在是(用户/搜索) Carrierwave工作得非常好,并且在我的节目中显示图像(用户/ 1等)但是当我把东西移到新的“搜索”页面时,它已经坏了。 这是我视图中的代码..(注意,当我删除图像时视图有效,所以其他代码很好) 我已经尝试添加我的users_controller: def search @users = User.all end 正如您在我的视图中可以通过代码判断的那样,我按性别过滤用户(我已经定义了@males和@females)您可以在下面的模型中看到。 class User { where gender: ‘male’ } scope :female, -> { where gender: ‘female’ } 我已经尝试将:image_url添加到attr_accessible和mount_uploader并且它不起作用,但我知道这不会是问题,因为我说它在节目中工作正常。 有任何想法吗 ?? 注意:我已经在这里检查了所有相关问题,但仍然无法找到有助于我的解决方案。 非常感谢

不用Carrierwave显示图像

我正在寻找一种方法,只需将照片上传到数据库并在页面上显示照片。 我正在尝试载波。 我认为它会正确上传照片,但是当它显示图像时,它所做的就是给出它的位置(url)。 这是上传者 class Image < ActiveRecord::Base attr_accessible :image, :title mount_uploader :image, ImageUploader end 这是用于上传文件的表单 {:multipart => true} do |f| %> prohibited this image from being saved: 这是为了显示图像 Image: Title: 打印出来的是: 图片:/uploads/image/image/2/946612_524939910875157_1455921715_n.jpg 标题:海报

您的Ruby版本是1.9.3,但您的Gemfile指定为2.1.0

当我跑 rails server 我收到了错误。 加载gemsets有一些问题 $rvm list rvm rubies ruby-1.9.3-p484 [ i686 ] ruby-2.0.0-p353 [ i686 ] =* ruby-2.1.0 [ i686 ] # => – current # =* – current && default # * – default $ruby -v ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux] $rails -v Your Ruby version is 1.9.3, but your Gemfile specified […]

干掉一个帮手:包装form_for并访问本地表单变量

我试图干掉一堆表单代码,这些表单代码在每个表单的末尾出现一组重复的字段。 我写了一个包装form_for rails helper的帮助器。 但是我开始迷失在飞来飞去的所有不同范围…… 我的助手是这样的: def simple_form_helper(record_or_name_or_array, *args, &proc) options = … # overriding some options, not relevant form_for(record_or_name_or_array, *(args < “blah”)) , &proc) # i wish to access &proc and append the call to render # to within &procs scope (to access block local variable) concat render(‘shared/forms/submit’) # this obv does not work […]

独角兽陷入困境:刷新gem列表

我正在使用Rails 4.0.0,Ruby 2.3和Unicorn。 我的应用程序工作正常,直到我尝试在我的Gemfile中添加nem gem。 一切都像本地的魅力一样,但是当我使用Capistrano部署到DO时,我陷入了错误循环: E, [2016-09-26T11:40:29.801388 #24545] ERROR — : reaped # worker=0 I, [2016-09-26T11:40:29.802952 #4287] INFO — : Refreshing Gem list /home/deployer/apps/my_app/shared/bundle/ruby/2.3.0/gems/activesupport-4.0.0/lib/active_support/values/time_zone.rb:282: warning: circular argument reference – now E, [2016-09-26T11:40:32.116762 #4287] ERROR — : uninitialized constant Vimeo::HTTParty (NameError) /home/deployer/apps/my_app/releases/20160924171252/app/controllers/webinars_controller.rb:2:in `’ /home/deployer/apps/my_app/releases/20160924171252/app/controllers/webinars_controller.rb:1:in `’ /home/deployer/apps/my_app/shared/bundle/ruby/2.3.0/gems/railties-4.0.0/lib/rails/engine.rb:465:in `block (2 levels) in eager_load!’ /home/deployer/apps/my_app/shared/bundle/ruby/2.3.0/gems/railties-4.0.0/lib/rails/engine.rb:464:in `each’ /home/deployer/apps/my_app/shared/bundle/ruby/2.3.0/gems/railties-4.0.0/lib/rails/engine.rb:464:in `block […]

在rails控制器中访问devise current_user变量

我使用模型User运行Devise gem(3.1.0)的Rails(4.0)。 我有名为CollectionsController控制器,我希望在此控制器中使用Devise的访问器方法current_user获取当前登录的用户对象。 之后,它返回undefined local variable or method ‘current_user’ for CollectionsController:Class 。 最有趣的是,当我试图在另一个控制器中做同样的事情时,例如PagesController – 一切都很完美! UPD:分享我控制器的“代码”:) class CollectionsController < ActionController::Base def index @user = current_user end end current_user方法的来源是由Devise定义的,而不是我。 所以我认为这不是问题所在。

如何处理devise的authenticate_user! 用ajax电话?

我有一个表单:remote => true,这意味着它将通过ajax提交。 在控制器中,我有这样的代码: before_filter: authenticate_user!, :only => [:create] 因为我只允许确认的用户创建资源。 但是,当身份validation失败时,设计会引发一个 Completed 401 Unauthorized 并且不会呈现不显眼的javascript。 但我希望事情是这样的: 设计在flash中设置一些消息,并渲染我的.js.erb,然后我向用户显示flash。 怎么实现呢?