小编Jam*_*ier的帖子

如何使用Devise处理不同的用户类型

我有2种类型的用户.公司和工人.

如何在我只有1个用户的设备中进行管理?

我想为公司和工人创建2个注册页面,但我只想要1个存储用户信息的表格.

authentication rubygems ruby-on-rails devise

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

在rails中创建自定义方法

我正试图找出一个好方法来解决这个问题.

假设我有一个包含帖子,标题和不同状态ID的表格.

在我的控制器索引中,我有:

@posts = Post.all
Run Code Online (Sandbox Code Playgroud)

然后在我的模型中我有:

def check_status(posts)
  posts.each do |post|
    # logic here
  end
end
Run Code Online (Sandbox Code Playgroud)

所以在我的控制器中我有:

   @posts.check_status(@posts)
Run Code Online (Sandbox Code Playgroud)

但加载索引时我收到以下错误:

undefined method check_status for <ActiveRecord::Relation:>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ruby ruby-on-rails ruby-on-rails-3

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

"git symbolic-ref HEAD refs/heads/gh-pages"和"git branch gh-pages"之间有什么区别?

这是这个过程创建GitHub的项目页面一个分支:

cd /path/to/repo-name
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "My GitHub Page" > index.html
git add .
git commit -a -m "First pages commit"
git push origin gh-pages
Run Code Online (Sandbox Code Playgroud)

它声明git symbolic-ref HEAD refs/heads/gh-pages将创建一个新的根分支.我想知道根分支和常规分支之间的区别是什么.

git github

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

找不到Rails 4.0记录

在我的编辑动作中,如果记录不存在,我永远不会找到未找到的记录.我做错了什么.

这是我的编辑操作

    class OffersController < ApplicationController

    rescue_from ActiveRecord::RecordNotFound, with: :record_not_found        

    def show
        @offer = Offer.find(params[:id])
    end        

    def edit
        @offer = Offer.find_by(edit_hash: params[:edit_hash])
        @country = Country.find_by(name: @offer.country)
        @states = State.find(:all, :conditions => { country_id: @country })
    end

    private

        def record_not_found
            render text: "404 Not Found", status: 404
        end
    end 
Run Code Online (Sandbox Code Playgroud)

对于nil,我总是得到未定义的方法`country':NilClass用于我的未编辑记录.

此外,我提高了我的节目动作中找不到的记录,但我想使用我公共文件夹中的404.html页面.我该如何使用这个文件?

提前致谢

ruby-on-rails

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

Capistrano postgresql:致命:用户的对等身份验证失败

我是第一次将应用程序部署到数字海洋并遇到两个(可能更多)问题.

1)bundle install添加gem 'unicorn'到Gemfile 后我不能.我发现kgio与windows不兼容.通过capistrano部署时,是否必须存在Gemfile.lock?我将如何解决这个问题?

group :production do
  gem 'pg', '0.14.1'
  gem "nginx"
  gem 'unicorn'
end
Run Code Online (Sandbox Code Playgroud)

2)我在服务器上的postgresql上进行身份验证时遇到问题.

production:
  adapter: postgresql
  encoding: unicode
  database: postgresql
  pool: 5
  username: postgresql
  password: secret
Run Code Online (Sandbox Code Playgroud)

我运行了这些命令(以及其他一些变体):

create user postgresql with password 'secret';
create database postgresql with owner postgresql;
Run Code Online (Sandbox Code Playgroud)

我每次上限部署时都会收到此错误:

FATAL: Peer authentication failed for user "postgresql"
Run Code Online (Sandbox Code Playgroud)

我尝试使用我知道不存在的无效用户名,数据库无效但错误消息始终相同.根据postgresql网站,我应该得到不同的错误...

如果我能得到一些帮助,那就太棒了.谢谢!

deployment postgresql capistrano ruby-on-rails unicorn

5
推荐指数
2
解决办法
5219
查看次数

Solr MultiCore搜索

我正在使用Apache Solr进行搜索.我用它来提供基于用户的个人搜索.即每个用户都有一个单独的物理Lucene索引.因此,对于10个用户,我在磁盘上有10个单独的物理索引.

为了支持对这些索引的搜索,我计划使用Solr MultiCore功能.我已经阅读过有关此内容的各种文章,看起来这样可行.

我实际上不确定的是,当一个solr搜索者得到一个查询,而不是将查询发送到所有多核时,如何将查询汇集到具有该特定用户索引所连接的核心?这是配置更改还是我需要进行代码级别更改?

即我想将查询只发送到一个solr-core(基于userid).这甚至可能吗?

更新:所以根据其中一个解决方案,我可以在solrconfig.xml中添加多核,即在启动solr时我需要提到核心(或者在我的情况下是用户).所以现在,如果我想添加新用户的索引,我可能需要停止solr,编辑其配置,添加用户核心并再次启动solr.有没有办法动态地将核心添加到正在运行的solr实例?

java apache search solr

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

使用Rails的CanCan gem来处理has_and_belongs_to_many情况

我有以下内容:

  • has_and_belongs_to_many餐馆的用户模型,反之亦然.
  • 餐厅模型that has_and_belongs_to_many用餐,反之亦然.

在我的ability.rb文件中,我想指定一个用户只能管理他"has_and_belongs_to"(即餐馆user.restaurants)的餐馆的饭菜.

我现在有这个:

class Ability
  include CanCan::Ability
  def initialize(user)
    # a user can only manage meals of restaurants he has access to
    can :manage, Meal do |meal| 
      meal.restaurant_ids & user.restaurant_ids #...this doesn't work...
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

我已经咨询了https://github.com/ryanb/cancan/wiki/Defining-Abilities-with-Blocks但我仍然不知道.

ruby-on-rails has-and-belongs-to-many cancan

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

尝试安装libv8 v3.11.8.9时如何解决此问题?

libv8 gem(v3.3.10之后的任何内容)的安装失败并显示消息"Killed".

我在我的Gemfile中包含了libv8和therubyracer:

group :production, :staging do
  gem 'libv8'
  gem 'therubyracer'
end
Run Code Online (Sandbox Code Playgroud)

bundle update本地精品键(Mac OS X).当我这样做时cap staging deploy,部署失败了:

  * 2013-01-04 19:17:51 executing `bundle:install'
  * executing "cd /path/to/app/app-staging/releases/20130105001748 && bundle install --gemfile /path/to/app/app-staging/releases/20130105001748/Gemfile --path /path/to/app/app-staging/shared/bundle --deployment --quiet --without development"
    servers: ["staging.app.com"]
    [staging.app.com] executing command
 ** [out :: staging.app.com] bash: line 1:  4324 Killed                  bundle install --gemfile /path/to/app/app-staging/releases/20130105001748/Gemfile --path /path/to/app/app-staging/shared/bundle --deployment --quiet --without development
    command finished in 48980ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /path/to/app/app-staging/releases/20130105001748; true" …
Run Code Online (Sandbox Code Playgroud)

gem ruby-on-rails linode therubyracer

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

Ruby Geocoder可以在reverse_geocode调用中返回街道名称吗?

地址解析器创业板将自动反向上保存如果行地址解析after_validation :reverse_geocode包含在模型中.这导致一长串文本被保存为地址,但格式类似于"街道名称,城市名称,县名,州名,邮政编码,国家名称".

我只对这个特定项目的街道名称感兴趣,所以我想知道是否有办法修改after_validation调用只保存该信息.

如果我手动执行反向地理编码,我可以访问road结果中的值:

  place = Place.first
  result = Geocoder.search("#{place.latitude},#{place.longitude}")
  street = result[0].data['address']['road']
Run Code Online (Sandbox Code Playgroud)

我可以设置我自己的自定义after_validation,但是如果geocoder已经提供了这个,我宁愿不重复功能.

或者,如果有一种完全不同的方式,我可以将纬度/经度转换为街道名称,我有兴趣听到它.如果此选项还包括地址编号或地址范围,则可以.

ruby-on-rails rails-geocoder

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

通过JSONObject迭代

我将来自Web服务的响应解析为a JSONObject,在记录时,如下所示:

{"Preferences":"{Pref1=Apple, Pref2=Pear}"}
Run Code Online (Sandbox Code Playgroud)

我理解如何询问Preferences标签,例如jsonObject.get("Preferences").但是,我不明白我要回到什么对象,也不知道如何迭代它.如何迭代返回的对象jsonObject.get("Preferences")

android json

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