我有2种类型的用户.公司和工人.
如何在我只有1个用户的设备中进行管理?
我想为公司和工人创建2个注册页面,但我只想要1个存储用户信息的表格.
我正试图找出一个好方法来解决这个问题.
假设我有一个包含帖子,标题和不同状态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)
有任何想法吗?
这是这个过程给创建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将创建一个新的根分支.我想知道根分支和常规分支之间的区别是什么.
在我的编辑动作中,如果记录不存在,我永远不会找到未找到的记录.我做错了什么.
这是我的编辑操作
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页面.我该如何使用这个文件?
提前致谢
我是第一次将应用程序部署到数字海洋并遇到两个(可能更多)问题.
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网站,我应该得到不同的错误...
如果我能得到一些帮助,那就太棒了.谢谢!
我正在使用Apache Solr进行搜索.我用它来提供基于用户的个人搜索.即每个用户都有一个单独的物理Lucene索引.因此,对于10个用户,我在磁盘上有10个单独的物理索引.
为了支持对这些索引的搜索,我计划使用Solr MultiCore功能.我已经阅读过有关此内容的各种文章,看起来这样可行.
我实际上不确定的是,当一个solr搜索者得到一个查询,而不是将查询发送到所有多核时,如何将查询汇集到具有该特定用户索引所连接的核心?这是配置更改还是我需要进行代码级别更改?
即我想将查询只发送到一个solr-core(基于userid).这甚至可能吗?
更新:所以根据其中一个解决方案,我可以在solrconfig.xml中添加多核,即在启动solr时我需要提到核心(或者在我的情况下是用户).所以现在,如果我想添加新用户的索引,我可能需要停止solr,编辑其配置,添加用户核心并再次启动solr.有没有办法动态地将核心添加到正在运行的solr实例?
我有以下内容:
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但我仍然不知道.
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) 该地址解析器创业板将自动反向上保存如果行地址解析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已经提供了这个,我宁愿不重复功能.
或者,如果有一种完全不同的方式,我可以将纬度/经度转换为街道名称,我有兴趣听到它.如果此选项还包括地址编号或地址范围,则可以.
我将来自Web服务的响应解析为a JSONObject,在记录时,如下所示:
{"Preferences":"{Pref1=Apple, Pref2=Pear}"}
Run Code Online (Sandbox Code Playgroud)
我理解如何询问Preferences标签,例如jsonObject.get("Preferences").但是,我不明白我要回到什么对象,也不知道如何迭代它.如何迭代返回的对象jsonObject.get("Preferences")?
android ×1
apache ×1
cancan ×1
capistrano ×1
deployment ×1
devise ×1
gem ×1
git ×1
github ×1
java ×1
json ×1
linode ×1
postgresql ×1
ruby ×1
rubygems ×1
search ×1
solr ×1
therubyracer ×1
unicorn ×1