小编Ahm*_*mza的帖子

如何使用Devise锁定用户?

我想在我的应用程序中为帐户持有者用户添加订阅类型功能,以便在固定的时间间隔后他们将无法访问其帐户?注意:我不想从数据库中删除他们的帐户.我已经devise-2.1.2在我的应用程序中安装了.有没有人知道怎么办?我是新手,Ruby on rails所以如果你请解释一下这对我很有帮助.

authorization ruby-on-rails devise ruby-on-rails-3.2

10
推荐指数
1
解决办法
9596
查看次数

使用carrierwave和uploadify时上传错误

我试图为uploadifycarrierwave支持multiple file upload,但它给我这个错误GET http://localhost:3000/users/uploadify.swf?preventswfcaching=1361694618739.基本上我有一个model名为user.对于单个上传,它可以与carrierwave一起正常工作,但对于多个文件则不然.

我已经按照教程.在users/_form.rb

<p>
<%= f.label "Upload Images"%>
<%= f.file_field :image, :multiple => true %>
</p>

<script type= "text/javascript">
$(document).ready(function() {
 <% key = Rails.application.config.session_options[:key] %>
  var uploadify_script_data = {};
  var csrf_param = $('meta[name=csrf-param]').attr('content');
  var csrf_token = $('meta[name=csrf-token]').attr('content');
  uploadify_script_data[csrf_param] = encodeURI(encodeURIComponent(csrf_token));
  uploadify_script_data['<%= key %>'] = '<%= cookies[key] %>';

  $('#user_image').uploadify({
  uploader        : '<%= asset_path("uploadify.swf")%>',
  script          : '/images',
  cancelImg       : '<%= asset_path("uploadify-cancel.png")%>',
  auto            : true, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails uploadify mongoid carrierwave

6
推荐指数
1
解决办法
432
查看次数

需要图像托管网站的建议

我正在使用Ruby on rails开发我的个人摄影作品集.我根本没有在我的资产/图像文件夹中保存这些图像,因为有许多高分辨率图像会增加网站文件夹的大小.所以我想在一些图片托管网站上传这些照片,以便生病只给出该图片的网址,这将大大降低网站文件夹的大小.关于我的投资组合我有三个问题:1.这是投资组合网站的正确方法吗?2.满足此类需求的最佳图像托管网站是什么?3.基于什么原因,我的投资组合使用数据库?

谢谢.

database hosting ruby-on-rails image

5
推荐指数
1
解决办法
2653
查看次数

设计:用户退出后如何使用remember_me cookie?

我正在处理一个Rails 4.2应用程序并使用devisegem进行身份验证.

对于remember_me功能,设计会生成一个cookie remember_user_token,之后会被破坏sign_out.

有没有这样的方法Devise不应该破坏remember_user_token

我试着false在下面configinitializer

config.expire_all_remember_me_on_sign_out = false

但它没有帮助.

我在注销后需要cookie,以便填充登录表单.

请帮忙.

谢谢

ruby cookies ruby-on-rails devise ruby-on-rails-4

5
推荐指数
1
解决办法
715
查看次数

测试设计用户登录但得到 401 未经授权的响应

我使用的是devise_auth_token创业板rails-api应用程序,其中我试图测试,如果userlogged_inuser有权render通过index在行动welcome_controller

欢迎控制器

class Api::WelcomeController < ApplicationController
  before_action :authenticate_user!

  def index
    render json: {
      data: {
        message: "Welcome #{current_user.first_name}",
        user: current_user
      }
    }, status: 200
  end
end
Run Code Online (Sandbox Code Playgroud)

路线

Rails.application.routes.draw do
  mount_devise_token_auth_for 'User', at: 'auth'
  namespace :api do
    get 'welcome', to: 'welcome#index'
    resources :socities
  end
end
Run Code Online (Sandbox Code Playgroud)

Welcome_controller_test

require 'test_helper'

class Api::WelcomeControllerTest < ActionDispatch::IntegrationTest
  def test_index_renders_message
    admin = users :admin
    sign_in admin
    get "/api/welcome"
    assert_response :success
  end …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails minitest devise rails-api

5
推荐指数
0
解决办法
748
查看次数

如何通过ransack gem搜索数组?

我正在ransack gem用于在rails应用程序中搜索.我需要搜索的数组email_ids中的User表.

在洗劫时提到这个问题,我按照步骤将其添加到初始化文件夹中ransack.rb

Ransack.configure do |config|
   {
    contained_within_array: :contained_within,
    contained_within_or_equals_array: :contained_within_or_equals,
    contains_array: :contains,
    contains_or_equals_array: :contains_or_equals,
    overlap_array: :overlap
   }.each do |rp, ap|
   config.add_predicate rp, arel_predicate: ap, wants_array: true
  end
end
Run Code Online (Sandbox Code Playgroud)

在rails控制台中,如果我喜欢这样:

a = User.search(email_contains_array: ['priti@gmail.com'])
Run Code Online (Sandbox Code Playgroud)

它产生这样的sql:

"SELECT \"users\".* FROM \"users\" WHERE \"users\".\"deleted_at\" IS NULL AND (\"users\".\"email\" >> '---\n- priti@gmail.com\n')"
Run Code Online (Sandbox Code Playgroud)

并给出如下错误:

  User Load (1.8ms)  SELECT "users".* FROM "users" WHERE "users"."deleted_at" IS NULL AND ("users"."email" >> '---
- priti@gmail.com
')
 ActiveRecord::StatementInvalid: PG::UndefinedFunction: ERROR: operator …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql activerecord ruby-on-rails ransack

3
推荐指数
1
解决办法
2009
查看次数

存取方法已定义但不起作用

我有这个代码:

class A
  attr_accessor :count

  def initialize
    @count = 0
  end

  def increase_count
    count += 1
  end
end

A.new.increase_count
Run Code Online (Sandbox Code Playgroud)

它抱怨说:

in `increase_count': undefined method `+' for nil:NilClass (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

如果我将increase_count定义更改为:

class A
  def increase_count
    @count += 1
  end
end
Run Code Online (Sandbox Code Playgroud)

然后它不会抱怨.可能是我遗漏了一些东西,或者这只是Ruby的奇怪行为.

ruby attr-accessor

3
推荐指数
1
解决办法
99
查看次数

将数组数组转换为哈希,将第一个数组的元素作为哈希的键

我想转换这个数组

[['a', 'b'],['c', 'd'],['e', 'f']] 
Run Code Online (Sandbox Code Playgroud)

这个哈希

{
  "a" : "c",
  "b" : "d"
},
{
  "a" : "e",
  "b" : "f"
}
Run Code Online (Sandbox Code Playgroud)

怎么做?

我试图使用group_by和正常的迭代器,但到目前为止没有运气.有任何想法吗?

ruby ruby-on-rails ruby-2.2

2
推荐指数
1
解决办法
1620
查看次数

如何使用 Nokogiri 验证 XML?

我必须验证 XML 文档,以便它不会接受无效的 XML 文档。

我这样做是为了处理无效文档:

xml ||= Nokogiri::XML xml_data do |config| 
  config.strict
end
rescue Nokogiri::XML::SyntaxError => e
  puts "caught exception: #{e}"
else
  #further processing if no error
Run Code Online (Sandbox Code Playgroud)

但即使对于有效的 XML 文档,它也显示:

caught exception: Extra content at the end of the document
Run Code Online (Sandbox Code Playgroud)

我正在使用的示例 XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ruby xml ruby-on-rails nokogiri xml-parsing

2
推荐指数
1
解决办法
4941
查看次数

如何包含旋转木马

当我已经在我的rails应用程序中安装了twitter bootstrap时,如何包含carousel(twitter bootstrap的组件).我的样式表和资源管道中的bootstrap.js.coffee中的文件较少.我想在我的应用程序中使用轮播.怎么做?

ruby-on-rails carousel twitter-bootstrap twitter-bootstrap-rails

1
推荐指数
1
解决办法
3933
查看次数

从数组数组中删除重复项

如何从此阵列中删除重复项?

product_areas = [["1", "2", "3"], ["3", "1", "2"]]
Run Code Online (Sandbox Code Playgroud)

我试过了product_areas.uniq!,product_area.uniq但同样的事情正在重复.我在这里错过了什么?

预期产出:

product_areas = ["1", "2", "3"]
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

1
推荐指数
1
解决办法
1193
查看次数

如何使用rails中的create方法创建多个记录并处理验证?

我将参数中的一组属性发送到我的控制器,如果创建记录有任何错误,我需要处理验证错误.

因为我需要一次创建多个组.

参数

  Parameters: {"group"=>[{"sort_by"=>"id", "template_ids"=>[182], "name"=>"Csdfwses", "count"=>1}, {"sort_by"=>"id", "template_ids"=>[181], "name"=>"rthydrt", "count"=>1}]}
Run Code Online (Sandbox Code Playgroud)

所以我的控制器的create方法是这样的:

def create
  @groups = Group.create group_params
   if @groups
    render json: { success: true, message: "#{@groups.length} groups created" }
   else
    render_422 @groups, 'Could not save groups.'
   end
end
Run Code Online (Sandbox Code Playgroud)

如果在创建任何记录时发生任何错误,我想处理这种情况,以便在创建它之后应该显示错误消息.

使用上述方法,error此处无法使用方法.如何显示错误消息?

我尝试过使用begin-rescue:

 def create
  begin
   @groups = Group.create! group_params
    if @groups
     render json: { success: true, message: "#{@groups.length} groups created" }
    else
     render_422 @groups, 'Could not save groups.'
    end
  rescue ActiveRecord::RecordInvalid => invalid …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-4

1
推荐指数
2
解决办法
1568
查看次数