我正在为我的用户使用设计.我最近安装了rails Active Admin gem,一切都运行得很漂亮.
但是我无法弄清楚如何添加新的管理员用户.我可以看到活动管理员admin_user在数据库中创建了一个用户admin@example.com 的表,我用它来登录界面.
我尝试添加admin_user作为资源,以便我可以单击活动管理界面中的添加管理员用户按钮添加新用户,但这似乎不起作用.
我读了一些关于这些论点的文件,但我不清楚它们是什么,它们之间有什么区别,如果其中一个符合我的需要.
我需要编写一个可插入其他应用程序的应用程序,并希望将其作为gem包含在其他应用程序中.基本上我需要一些模型,一个控制器和没有视图,加上一些初始化,支持来自托管应用程序和生成器的配置参数.
我是正确的吗?
我应该阅读什么才能理解如何做到这一点?
更新:
有很多细节AF一个很不错的文章,可以发现在这里.
实质上:
Railtie是Rails框架的核心,它提供了几个钩子来扩展Rails和/或修改初始化过程.
Rails :: Engine只不过是一个已经设置了一些初始化程序的Railtie.由于Rails :: Application和Rails :: Plugin是引擎,因此这里描述的相同配置可以在所有三个中使用.
测试用户非常善于进行集成测试.
当我开发facebook oauth启用的东西时,我可以以编程方式创建测试用户并将其用作我的应用程序的真实用户.它们的行为方式与真实用户相同,唯一的区别是它们是沙盒.
Google会提供类似的东西吗?
他们正在将所有服务转移到oauth2,我想与"真实"用户进行完整的集成测试.
目前我手动运行我的集成测试并在请求时授权应用程序,显然这种方法不适合CI和真正的自动化测试.
我看到的唯一选择是创建一个仅在测试中使用的真实帐户,并使用其与硒等内容交互的凭据.
其他选择?
在Rails模型中,我有一个属性is_subscriber,当我构建一个db迁移以将此列添加到数据库时,我将默认值指定为false:
t.boolean "is_subscriber", :default => false
Run Code Online (Sandbox Code Playgroud)
我还在模型中指定需要存在此属性:
validates :is_subscriber, presence: true
Run Code Online (Sandbox Code Playgroud)
那么为什么在创建模型实例时却没有指定此属性会出现此错误?
2012-05-08T21:05:54+00:00 app[web.1]: ActiveRecord::RecordInvalid (Validation failed: Is subscriber can't be blank):
Run Code Online (Sandbox Code Playgroud) 我正在使用sed来过滤文件列表.我有一个已排序的文件夹列表,我希望获得特定文件后的所有行.为了完成这个任务,我正在使用这里描述的解决方案,它对我尝试的任何输入都很有效,但是当匹配在第一行时它不起作用.在这种情况下,sed将删除输入的所有行
这是一个例子:
(ssh) fabio@s2 : ~
[0] % ls -1 /
bin
boot
...
sys
tmp
usr
var
vmlinuz
(ssh) fabio@s2 : ~
[0] % ls -1 / | sed '1,/tmp/d'
usr
var
vmlinuz
(ssh) fabio@s2 : ~
[0] % ls -1 / | sed '1,/^bin$/d'
# sed will delete all lines from the input stream
Run Code Online (Sandbox Code Playgroud)
当regexp匹配第一行时,我应该如何更改命令以考虑极限情况?
BTW sed '1,1d'正确工作并仅删除第一行.
我正在编写一个rails应用程序,其中我有一个编辑器和一个出版物模型.我正在使用设计编辑器身份验证,并且由于编辑器不能作为访客执行任何操作,因此我编写了一个用于登录页面的自定义布局,并且我希望访客用户只能看到登录页面.
现在,我正在尝试在我的应用程序中实现以下行为,但未成功:
require 'spec_helper'
require 'capybara/rails'
describe "Authentication" do
describe "when logged in" do
before(:each) do
@editor = Factory(:editor, :password => 'secret')
visit '/'
fill_in 'Login', :with => @editor.login
fill_in 'Password', :with => 'secret'
click_button 'Sign in'
page.should have_content('Signed in successfully.')
end
it "getting / should render publication page with no redirection" do
visit '/'
page.should_not have_content('Login')
page.should have_content('Publications')
# assert that there is no redirection
page.current_path.should == '/'
end
it "visits the sign_in page should redirect to /" do …Run Code Online (Sandbox Code Playgroud) 我有一组不同大小的正方形和矩形,我想用PHP将它们组合成一个大的正方形/矩形.正方形通常是我想制作蒙太奇的图像 - 但有时它们只是数学对象.
是否有任何PHP算法,这种类型的东西叫什么?
更新:经过更多搜索后,我认为我想要的是bin包装问题.但是,我还想为某些类型的包装问题(如图像)添加一定量的随机化,以引起人们的兴趣.
language-agnostic algorithm math cluster-analysis bin-packing
注意:我在这里搜索过其他类似的Q,并且没有其他回答的问题甚至是远程相似的......有了这个...
我有一个关于MySql表的问题(更准确地说,来自表中的特定字段 - 即tweets或者updates).
那么问题是:InnoDB表上的最大行数是多少?也就是说,如果MyIsam,InnoDB和其他人可以持有的金额之间存在很大差异,那么一般来说,如果没有.其次,如果表格变得非常大,那么存储数据的最佳实践是什么(相同的一个表格,还是分割/多个表格/ dbs)?
我读到Twitter每天都有1亿条推文.在同样的背景下,我的第二个问题如何适用于像twitter这样的东西?
我有一个简单的rails应用程序,带有一些控制器和一些rake任务.由gem配置的cron执行几个任务.
我的任务之一是每天执行,有时会引发异常,默认情况下我会收到cron的警告
rake aborted!
undefined method `parameterize' for nil:NilClass
Tasks: TOP => mailboxes:clean_processed
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)
我想调试正在发生的事情,因此我刚刚在我的这行中安装了这个异常通知 gemGemfile
gem "exception_notification", "~> 2.4.1", :require => 'exception_notifier'
Run Code Online (Sandbox Code Playgroud)
并在我的application.rb文件中配置它
# enable exception notification
config.middleware.use ExceptionNotifier,
:email_prefix => "[MyAppName] ",
:sender_address => %{"notifier" <report@example.com>},
:exception_recipients => %w{me@example.com}
Run Code Online (Sandbox Code Playgroud)
由于这个gem是一个机架中间件,它只适用于Web请求而不适用于rake任务.我也想为rake任务启用它,我找到了这个工作的要点.
它工作,但它不是DRY,我需要在该方法中重复gem配置,我还需要更改我所有的rake任务,将它们的语句封装在一个块中,如同
exception_notify { actual_task_code }
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来解决这个问题?
PS如果我需要更改通知gem不会有问题,因为我只为我的项目添加了几行代码.
PPS我知道我也可以更改crontab中的rake行来添加一个--trace选项,但是我不喜欢那个解决方案,导致异常通知程序imho是一个更好的解决方案,它也有助于Web代码.
更新我刚刚发现了这个相关的问题:delayed_not的exceptions_notification但两个答案都使用了类似的技巧.
我将尝试像Airbrake(以前称为hoptoad)或Exceptional这样的在线服务,但它们都是付费服务......
更新2:我尝试了Airbrake App,非常好的应用程序,但它遇到同样的问题,我仍然需要破解Rakefile来通知rake任务的异常.然而,hack不那么干,因为你只需要这个代码:
# notify exceptions …Run Code Online (Sandbox Code Playgroud) error-handling rake exception-handling ruby-on-rails exception-notification
我正在使用jQuery.ajax调用通过javascript调用api .如果用户未经过身份验证,api会回复401,我只想忽略此错误.
我已经尝试了jQuery选项中描述的所有回调选项,但错误仍然在浏览器控制台中弹出(在Firefox和Chrome中).
以下是触发错误的示例代码:
$.ajax({
type: 'GET',
url: '/url-with-auth',
dataType: 'json',
statusCode: {
401: function (error) {
// simply ignore this error
console.log(error);
}
},
complete: logall,
error: function () {
// simply ignore this error
console.log(error);
},
async: false
}).fail(function () {
// ignore the error and do nothing else
console.log("$.get failed!");
});
Run Code Online (Sandbox Code Playgroud)
这也具有在由.htaccess文件保护的登台机上再次请求用户凭证的副作用,因为浏览器认为用户未被认证,因此在以下请求中用户需要重新输入他的http凭证.
有没有办法完全忽略这个错误?
目前我有一个完全缓存应用程序端的HTML模板,我想出于性能原因保留此行为.布局中唯一更改的部分是当前用户的登录信息,因此我使用默认标记呈现(缓存)页面,未登录用户,然后使用jQuery我将标记的相关元素替换为ajax调用返回的登录信息.因此,如果用户未登录且ajax端点返回401我不需要任何内容,则标记应保持不变.
一切都在这个时刻工作,唯一的丑陋的事情是我在控制台中有401 javascript错误,我想摆脱它.
这是我正在谈论的消息的屏幕截图:

devise ×2
activeadmin ×1
activerecord ×1
algorithm ×1
awk ×1
bin-packing ×1
browser ×1
google-oauth ×1
http ×1
innodb ×1
jquery ×1
math ×1
max ×1
mysql ×1
oauth-2.0 ×1
perl ×1
railtie ×1
rake ×1
regex ×1
routes ×1
rows ×1
scalability ×1
sed ×1