小编AGi*_*des的帖子

在视图中设计解锁按钮

这可能很简单,我忽略了它.我正在使用设计可锁定功能,我想创建一个管理员可以检查以解锁锁定用户的按钮.

Devise有一个名为unlock_access的模型方法!.我试图在用户的控制器方法中使用视图中的按钮来调用它.

浏览次数:

= link_to('unlock', user_unlock_path(user), method: :post, class: 'button-xs') unless user == current_user
Run Code Online (Sandbox Code Playgroud)

users_controller.rb:

def unlock
  user = User.find(params[:id])
  user.unlock_access!
end
Run Code Online (Sandbox Code Playgroud)

路线

resources :users do
  post 'unlock'
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails devise

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

管理员和用户的权威指数方法

所以,我正在尝试使用宝石评论员.我只想弄清楚如何为用户和管理员提供索引视图.我想为管理员呈现所有结果,仅为用户呈现相关帖子.我在github上搜索和搜索,但我找不到任何运气.我必须在政策和控制器中加入什么?

原始代码

class PostsPolicy
   attr_reader :current_user, :model

  def initialize(current_user, model)
    @current_user = current_user
    @post = model
  end

  def index?
    @current_user.admin?
  end
end
Run Code Online (Sandbox Code Playgroud)

调节器

class PostsController < ApplicationController
  before_filter :load_user
  before_filter :authenticate_user!
  after_action :verify_authorized

  def index
    @posts = Post.order('title').page(params[:page]).per(25)
    authorize User
  end

private

  def load_user
    @user = User.find_by_id(params[:user_id])
  end

end
Run Code Online (Sandbox Code Playgroud)

第二次更新

class PostsPolicy
 class Scope
  attr_reader :user, :scope

  def initialize(user, scope)
     @user = user
     @scope = scope
  end

  def resolve
    if user.admin?
      scope.all
    else
      scope.where(user: user)
    end
   end

  end

end
Run Code Online (Sandbox Code Playgroud)

调节器 …

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

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

Rails 4和Devise的积极工作

我正在尝试使用Rails 4和Devise设置Active Job.我愿意接受任何教程,如果有的话(通过我的搜索找不到.)

我知道有一个Devise Async gem,但它不包括Active Job.也就是说,我发现这个宝石在开发中很新鲜,但我收到了一个uninitialized constant Devise::Async::Backend::Base (NameError)错误.(可能是我在实施它时很轻松).

欢迎任何建议.我希望我不必创建新的控制器方法.

ruby-on-rails devise ruby-on-rails-4 devise-async rails-activejob

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

FactoryGirl create_list具有不同的值

我正在尝试使用FactoryGirl来创建项目列表,但我需要这些项目不按顺序排列.这就是我所拥有的,但我希望它是DRYer.

spec.rb

context "three out of order" do
  before do
    FactoryGirl.create(:thing, ordering: 3)
    FactoryGirl.create(:thing, ordering: 1)
    FactoryGirl.create(:thing, ordering: 2)
  end

   it "should sort the things in order" do
    expect(Thing.all.map(&:ordering)).to eq([1, 2, 3])
   end
end
Run Code Online (Sandbox Code Playgroud)

我知道您可以创建多个项目:

   FactoryGirl.create_list(:thing, ordering: 3 )
Run Code Online (Sandbox Code Playgroud)

但我想创建项目,以便测试他们的订单,他们将按顺序创建所有项目,因为我在工厂中设置了序列.

ruby rspec ruby-on-rails factory-bot

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