Tag: ruby on rails 4

如何搜索记录然后将其删除

如何通过手机号搜索ttoken记录。 然后删除该记录? User.rb: field :ttokens, type: Hash, :default => {} # Stored as hash over numbers 通常,rails控制台中的ttokens值如下: ttokens: {“919839398393″=>{“atoken”=>”f704e803061e594150b09ad8akabfc6105ac85ab”, “confirmed”=>true}, “91812798765”=>{“atoken”=>”255cb70926978b93eik67edb52fa23a163587b4b”, “confirmed”=>true}} 我需要一个mongodb查询来搜索手机号码的ttoken记录,然后删除该记录。 使用的数据库是MongoDB。 任何指导或帮助将受到高度赞赏。

控制器根据前一页重定向到不同的路径

题: 在create操作后我想如何重定向到不同的路径,如果previous_page是../reader/new转到../reader/blog/:id ,而如果previous_page是../editor/new则转到../editor/blog/:id 。 阐释: 我想修改控制器操作,以便它可以重定向到不同的路径,具体取决于它来自哪个页面。 例如,我有一个reader , editor和blog模型。 reader和editor都可以创建blog 。 这是原始的blogs_controller : class BlogsController < ApplicationsController def create @blog = Blog.new(blog_params) respond_to do |format| if @blog.save format.html { redirect_to @blog } else format.html { render :new } end end end private def blog_params params.require(:service).permit(:title, :content) end end

为什么before_action:authorize以’错误的参数数’失败?

我已经和Devise一起成立了Pundit,以便对我的申请进行授权。 在我的一个控制器中,我有before_action :authorize 。 然后我进行了以下测试: describe SomeController do before(:each) do login_user(FactoryGirl.create(:user, :user_type => :admin)) end describe “GET index” do it “it retrieves the index” do something = FactoryGirl.create(:Something) get :index assigns(:something).should eq([something]) end end end 我收到错误: wrong number of arguments (0 for 1) 登录助手非常简单: module ControllerMacros def login_user(user) if user.nil? user = FactoryGirl.create(:user) end @request.env[“devise.mapping”] […]

Digest :: Digest已弃用; 使用摘要

我收到以下错误 Digest::Digest is deprecated; use Digest 当我尝试启动我的rails服务器。 我试图在我的源代码中搜索Digest::Digest但我没有在任何地方使用它。 任何想法如何解决? 只有我正在使用的地方是 @alias = Digest::MD5.hexdigest(phone)

如何创建一个自动将用户登录到devise / rails的链接?

我正在尝试让已注册用户在我的网站上执行某些操作,因此我希望通过电子邮件直接发送此操作的链接。 问题是我希望在点击该链接时自动登录。 我可以做一些明显的事情,比如创建一个独特的令牌并通过url mysite.com/my_funky_action?login_bypass_token=af123fa127ba32传递它,但这在我看来是一个“以前解决过很多次”的问题。 那么,使用rails / devise有一个简单的方法可以做到这一点吗? 我搜索了设计文档但没有成功。

Rails服务器上的NoMethodError

我正在尝试启动Rails服务器,但是我收到以下错误并且服务器关闭。 我怀疑我错过了一个依赖,但我是一个Ruby noob,所以我很可能是错的。 => Booting WEBrick => Rails 4.1.0 application starting in development on `http://0.0.0.0:3000` => Run `rails server -h` for more startup options => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (–binding option) => Ctrl-C to shutdown server Exiting /Users/darrin/inventory/vendor/ruby/2.1.0/gems/railties-4.1.0/lib/rails/commands/server.rb:133:in `log_to_stdout’: undefined method `formatter’ for nil:NilClass (NoMethodError) from /Users/darrin/inventory/vendor/ruby/2.1.0/gems/railties-4.1.0/lib/rails/commands/server.rb:67:in `start’ […]

Rake任务似乎忽略了database.yml配置

我正在使用MAC OS X以及通过Homebrew安装的postgresql。 我正在开发使用Rails 4.2.1和ruby 2.2.0。 与postgresql服务器的连接很好,但由于某种原因,每个应用程序都访问数据库“kstavrou”,这是我的系统用户名,作为开发数据库,​​并创建数据库.yml定义的其余部分。 如果你有超过1个rails应用程序,这很麻烦。 rake db:创建输出: Konstantinoss-MacBook-Pro:ecomm-intel kstavrou $ rake db:create kstavrou已经存在 ecomm_intel_test已经存在 奇怪的是,如果我清空database.yml仍然可以很好地连接到postgresql并尝试再次创建数据库“kstavrou”执行所有迁移,而不尝试创建测试数据库。 rake db:创建输出: Konstantinoss-MacBook-Pro:ecomm-intel kstavrou $ rake db:create kstavrou已经存在 database.yml的 default: &default adapter: postgresql host: localhost encoding: utf8 username: pguser password: 123456 pool: 5 production: <<: *default database: ecomm_intel_prod development: <<: *default database: ecomm_intel_dev test: <<: *default database: […]

Rails中的共享JS(咖啡)

如果我想在app / assets / javascript下的不同文件之间共享一些JavaScript函数,那么组织目录结构的最佳方法是什么? 假设我有shared.js.coffee sharedFunction = -> ‘Hello ‘ 现在,我如何在其他地方使用它? 就像这里一样,在welcome.js.coffee中 welcome = (name) -> sharedFunction() + name 如何才能首先加载 shared.js.cofee ? 我试着把它放在application.js的最开头,但它没有改变任何东西。 似乎共享文件加载时间太长, 欢迎管理开始执行并注意到未定义sharedFunction。

嵌套表格:如果没有输入儿童信息,则不应保存

我有一个嵌套的表单来注册一个新的组织和一个成员(1:组织与其成员之间的很多关系)。 两者都在模型文件和迁移文件中都有validation。 问题 :如果没有正确输入两者的信息,我希望表格不要注册任何东西(不是组织或成员)。 目前,当我注册一个新组织但是将该成员的所有变量都留空时,它会在没有错误消息的情况下注册该组织,并且它不会注册任何成员。 相反,我希望它也尝试编写成员,然后生成错误消息,因为成员的某些变量不允许为空。 由于该错误,它不应该保存组织,直到成员信息也是正确的。 如果我为成员输入一些信息,这确实可以正常工作:如果该成员随后无效,则不会保存组织或成员并给出错误。 如果我输入成员的有效信息而没有组织信息,它也能正常工作:它会产生错误并且不会保存任何内容。 但是如果我为组织输入有效信息而没有成员信息则不起作用:它不会产生任何错误并仅保存组织。 我应该如何更改我的代码来调整它? 风景: 部分/forms: Details of the organization: Your personal details: 和控制器: def new if (logged_in?) flash[:danger] = “You’re already logged in” redirect_to root_url end @organization = Organization.new @member = @organization.members.build end def create @organization = Organization.new(new_params) if @organization.save @organization.members.each do |single_member| single_member.send_activation_email end flash[:success] = […]

没有Id:Rails 4自定义控制器动作,找不到

我正在尝试为某些数据创建一个JSON提要,以便将其部署到我所拥有的图形中。 我一直遇到“找不到没有Id的大坝”,而且没有任何关于SO的答案似乎都有解决方法。 我的参数似乎正在通过罚款,我有点困惑。 的routes.rb require “resque/server” Rails.application.routes.draw do mount Resque::Server, :at => “/resque” root ‘home#index’ get ‘about’, to: ‘home#about’ resources :dams, only: [:index, :show] do get ‘count_data’, to: ‘dams#count_data’ resources :fish_counts, only: [:index, :show] end resources :fish end dams_controller.rb中的自定义操作: def count_data @dam = Dam.includes(:fish_counts, :fish).friendly.find(params[:id]) @fish_counts = FishCount.for_year(Date.today.year).where(“dam_id =?”, @dam.id).limit(200).order(count_date: :desc) respond_to do |format| format.json […]