Tag: ruby on rail

Devise / CanCanCan – 允许管理员创建新用户

我正在使用rails 4.0.2,设计和cancancan 。 我正在尝试允许管理员创建新用户。 管理员用户在users表中分配了一个布尔字段。 在ability.rb我有以下内容: can :manage, :all if user.admin? 根据这个问题的一些建议,我创建了一个名为AdminsController的新控制器,它看起来像这样: class AdminsController < Devise::RegistrationsController def create build_resource(sign_up_params) if resource.save redirect_to admin_editors_path else clean_up_passwords resource respond_with resource end end def new build_resource({}) end end 我也尝试过配置路由: devise_for :users, :skip => [:registrations] as :user do get ‘user/admin’ => ‘admins#new’ post ‘user/admin’ => ‘admins#create’ get ‘users/edit’ => […]

与kaminari反向分页?

我正在使用Kaminari 0.13.0和RubyOnRails 3.2.8。 让我们假设我的元素有一个默认的crated_at排序,我的列表中有8元素{a, b, c, d, e, f, g, h} ,我每页分页3个。 默认情况下,kaminari将创建以下页面链接1, 2, 3链接到{h, g} , {f, e, d} , {c, b, a} 。 如何让kaminari以相反的顺序创建页面链接? 我希望它以相反的顺序产生链接3,2,1仍然链接到反向有序元素{h, g} , {f, e, d} , {c, b, a} 。 关于我试图解决的问题的一点背景: 我通过created_at命令页面上的元素。 我希望元素永远保持在同一页面上。 如果我不使用反向分页,每次添加新元素时页面内容都会发生变化。 因此,在上面的示例中,如果我向列表{i, j}添加了更多元素,则默认kaminari行为{i, j}那么1st页将包含{j, i, h} ,而不是以前的{h, g} 。 2nd页将包含{g, f, e}不是{f, e, d}因为它曾经等等……这对书籍制作,搜索引擎优化等不利。 如果我有上面描述的反向页面编号,那么1st页仍然会有{c, […]

设计:新错误(可加密)

我没有在一周内触及我的代码,但是当我捆绑,然后尝试运行我的网络服务器时,我现在得到以下错误,这让我死在水中。 包含错误输出中建议的设计加密gem不能解决问题,仍然会导致相同的错误。 任何帮助是极大的赞赏。 [DEVISE] Devise.apply_schema is deprecated and has no effect. Please remove it. [DEVISE] To select a encryption which isn’t bcrypt, you should use devise-encryp table gem. [DEVISE] Devise.use_salt_as_remember_token is deprecated and has no effect. Plea se remove it. /Users/sa/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.1/lib/action_d ispatch/http/mime_type.rb:101: warning: already initialized constant PDF [DEVISE] You’re trying to include :encryptable in your […]

save(false)和save(:validate => false)之间的区别

save(false)和save(:validate => false)之间有什么区别? 据我所知,function是一样的。 使用的版本:validate是在api中让我相信save(false)是一个弃用的版本? 在我这样做时,我想到了这个: https : //github.com/plataformatec/devise/wiki/How-To : -Create-a-guest-user 。 该指南已save(false) ,但我在使用它时遇到错误。 我把它切换到:validate版本,并且工作正常。

你如何通过ID以外的东西获取RESTful资源?

在某些情况下,我需要通过ID以外的参数来查找对象。 什么是正确的RESTful方式呢? 例如,我可能想要通过username和password找到User ,因此严格的RESTful“ GET /users/1 ”将无效。 根据Rails文档,这是获取资源的所有实例的URL模式:“ GET /users ”。 我可以添加参数:“ GET /users?username=joe&password=topsecret ”,但这会违反GET请求的官方目的。

这个MiniTest :: Unit :: TestCase警告是什么意思?

我的测试运行没有问题,突然出现以下警告: MiniTest::Unit::TestCase is now Minitest::Test 这在以下库中报告: ruby-1.9.3-p392/lib/ruby/1.9.1/test/unit/testcase.rb:8:in `’ gems/activesupport-3.2.12/lib/active_support/test_case.rb:12:in `’ gems/activesupport-3.2.12/lib/active_support/descendants_tracker.rb:34:in `inherited’ 我不知道是什么促使出现这些警告。 有人知道我能做些什么来消除警告吗? 即使有警告,测试仍然可以正常运行。 我的Rails环境是3.2.12,在OSX 10.8.4上运行。 谢谢!

Rails检查IRB控制台或网页

在我的模型中,我想检查应用程序是在IRB consol内运行还是作为网站运行? class MyModel < ActiveRecord::Base def xmethod if !isIRBconsol self.user_id = UserSession.find.user.id end end end

使用Ruby on Rails集成Shipping

在我的购物车中包含运费报价的最佳方法是什么? 我的网站的基本流程是 1.) User selects products 2.) User is shown cart 3.) repeat 1 and 2 until User wants to pay 4.) collect user details ( email, address where items will be shipped to ) 5.) make payment via active merchant 6.) order is submitted to distributor. 我想插入运送信息,以便用户可以通过活跃的商家支付他的购买+运费。 1.) User selects products 2.) User is […]

通过电子邮件或手机号码设计注册

我可以注册用户在我的应用程序中获取电子邮件地址和手机号码。 但我真正想要的是使用电子邮件或移动设备注册用户作为主要身份validation密钥。 因此,如果用户提供电子邮件地址,则必须将其保存在数据库的电子邮件字段中,如果用户提供移动电话号码,则必须将其保存在数据库的移动字段中。 此外,我想覆盖移动用户的确认方法,并希望发送带有激活密钥的消息,并在应用程序中输入密钥以激活注册。 我认为它不是那么难,但我没有从哪里开始。 请建议我完成这项任务的有利方法。

如何生成重置密码令牌

我正在使用devise gem进行身份validation。 在我的应用程序中,管理员将创建用户,因此当管理员创建用户时,我希望用户的重置密码链接。 这是我的行动: – def create @user = User.new(user_params) @user.password = ‘123123123’ @user.password_confirmation = ‘123123123’ if @user.save @user.update_attributes(:confirmation_token => nil,:confirmed_at => Time.now,:reset_password_token => (0…16).map{(65+rand(26)).chr}.join,:reset_password_sent_at => Time.now) UserMailer.user_link(@user).deliver redirect_to users_path else render :action => “new” end end 这是我重置用户密码的链接 但是当我打开链接并更新密码时,我收到重置密码令牌无效。