我正在尝试使用 Devise + Rails 实现延迟注册(又名延迟身份验证,又名渐进式参与)网站流程。
通过逐步参与,我的意思是
“在用户绝对必须登录之前不要让她登录,而要让她玩转并在网站上被记住”
我正在寻找一种简单的方法来使用devise来做到这一点。我觉得这是许多其他人不得不做的事情,但我还没有找到关于它的文档。
以下方法在我的脑海中听起来不错,所以我将开始:
- 创建仅“可记住”的用户
- 当访问某些页面时,要求这些用户有更多的数据,比如用户名和密码,通过类似“before_filter :authenticate_user!”之类的东西。在适当的控制器中。
这种方法有意义吗?有没有更好的?您是否愿意分享使用 Devise + Rails 的渐进式参与方法来注册/注册表格?
# lib/tasks/test.rake
task :hello do
puts 'hello'
end
Run Code Online (Sandbox Code Playgroud)
$ rake 应用程序:你好
要运行任务,我需要在它前面加上“app:”前缀,它在虚拟应用程序的上下文中运行。它也作为rake hello.
我想运行一个不需要 Rails 环境并运行一些命令的 rake 任务,但它是从引擎根目录运行的,而不是虚拟应用程序根目录。
rake ruby-on-rails-plugins ruby-on-rails-3 ruby-on-rails-3.1
我正在寻找一个好的RoR表生成器(或一个简单的解决方案),它可以在一个表中给我一个体面的记录视图(unstylized但适当严格的XHTML).
假设我有一个用户模型和一个地址模型: - 用户可以有多个地址 - 一个地址也链接为"primary_address"
假设我的用户控制器中有以下内容
def index
@users = User.find(:all,:order => 'id ASC')
@headers = ["id","First","Last","City","State"]
@fields = [:id,:firstname,:lastname,:primary_address.city,:primary_address.state]
end
Run Code Online (Sandbox Code Playgroud)
我不知道字段数组是否可行,但我认为它可以解决问题.有没有人知道一个好的宝石,插件或技术,所以我不必在我的所有表视图上"重复自己"?
我目前正在使用ambethia的recaptcha插件用于rails.我想禁用该消息
"不正确,验证码 - 溶胶"
每当用户错误地输入错误的recaptcha.我应该怎么做呢?
在源文件中,我在错误消息周围得到以下标记
<p class="recaptcha_error">incorrect-captcha-sol</p>
Run Code Online (Sandbox Code Playgroud) 与mongoid一起使用的最佳状态机宝石是什么?
state-machine ruby-on-rails-plugins mongoid mongodb-ruby ruby-on-rails-3
我希望能够按分数和位置订购我的搜索结果.数据库中的每个用户都有lat/lot,我目前正在编制索引:
location :coordinates do
Sunspot::Util::Coordinates.new latlon[0], latlon[1]
end
Run Code Online (Sandbox Code Playgroud)
我将执行搜索的模型也以相同的方式编入索引.基本上我想要实现的是结果按分数排序,然后按位置排序.因此,如果我搜索沃尔玛,我希望看到所有沃尔玛的地理位置靠近我的位置.
我记得读过关于solr的新geo-sort的东西,但不确定它是否超出alpha和/或sunspot是否实现了包装器.
你会推荐什么?
我最近安装了一个名为Gretel的插件来为我处理面包屑.它似乎工作得很好,除了它似乎打破了我的一些规格与以下错误:
Failure/Error: response.should redirect_to @course
Expected response to be a redirect to </courses/904> but was a redirect to
<http://test.host/courses/904>
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能摆脱这个错误?路径似乎完全正确,除了那个讨厌的test.host之外.
我最近从gem版本切换resources_controller到了依赖plugin的gem版本git.
在vendor/plugins/plugin/lib/plugin.rb文件内部,Railtie如下:
module Ardes
module ResourcesController
class Railtie < Rails::Railtie
initializer 'ardes.resources_controller' do
ActiveSupport.on_load(:action_controller) do
extend Ardes::ResourcesController
include Ardes::ResourcesController::RequestPathIntrospection
end
ActiveSupport.on_load(:active_record) do
include Ardes::ActiveRecord::Saved
end
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我已经require 'resources_controller'在我的一个初始化程序中添加了一个并正确加载此文件.问题是虽然Railtie被评估(puts类块中的一个将被击中),但它似乎永远不会实际调用初始化块本身.这当然很重要,因为这是扩展ActionController到包括resources_controller_for方法的地方.
这个问题似乎已经出现在这里和这里.虽然在这两种情况下他们都找到了解决问题的其他方法,但没有直接回答为什么没有调用块.
从我在Rails文档中可以看出,您可以将初始化程序块命名为您想要的任何内容,并且它应该运行.我认为这不重要,但我在生产中运行时首先注意到了这个问题,rails s -e production但我相信在开发模式中存在同样的问题.
可能会发生什么?
作为参考,完整的插件在这里:https://github.com/ianwhite/resources_controller
我正在尝试安装capybara-webkit(0.8.0),但我得到下面的错误,可以任何身体帮助,我在ubuntu 11.10.
使用本机扩展安装capybara-webkit(0.8.0)Gem :: Installer :: ExtensionBuildError:错误:无法构建gem本机扩展.
Run Code Online (Sandbox Code Playgroud)/home/sam/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb /usr/bin/qmake /usr/bin/make cd src/ && /usr/bin/qmake/home/sam/Documents/RoR/course_builder/CDPATH=/ruby/1.9.1/gems/capybara-webkit-0.8.0/src/webkit_server.pro -spec/usr/share/qt4/mkspecs/linux-g ++ - o Makefile.webkit_server/usr/bin/make cd src/&& make -f Makefile.webkit_server make [1]:输入目录
/home/sam/Documents/RoR/course_builder/CDPATH=/ruby/1.9.1/gems/capybara-webkit-0.8.0/src' g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I. -o RequestedUrl.o RequestedUrl.cpp make[1]: g++: Command not found make[1]: *** [RequestedUrl.o] Error 127 make[1]: Leaving directory/home/sam/Documents/RoR/course_builder/CDPATH=/ruby/1.9.1/gems/capybara -webkit-0.8.0/src'make :* [sub-src-webkit_server-pro-make_default-ordered]错误2make cd src/&& make -f Makefile.webkit_server make [1]:输入目录 …
ruby-on-rails-plugins capybara ruby-on-rails-3 capybara-webkit
我正在使用Ruby on rails和它旁边的paperclip进行图像存储和链接.它很棒.
我现在想使用rake db:seed工具并使用'Event'对象填充我的seeds.rb文件.
我使用种子文件来填充我的应用程序的其他区域使用如下语法:
categories = Category.create([{ name: 'General'}, {name: 'Clubs'}, {name: 'For Mum'}, {name: 'Services'}])
Run Code Online (Sandbox Code Playgroud)
这是填充简单的类别模型,只有1个字段名称.如何为更复杂的模型创建种子,例如我的"事件"模型,它也期望图像作为其中的一部分?我可以以某种方式有种子图像目录并使用种子本地加载文件?
请您给我看一个使用种子rake文件创建带有Paperclip图像字段的模型实例的解决方案的示例.
谢谢!