小编RAJ*_*RAJ的帖子

如何在同一个模型中执行has_many和has_one关联?

我需要在同一个模型中做两个关联.哪里:

团队 has_many 用户 现在,我想要那个团队 has_one 负责人

这个"领导者"将是一个用户

我试图使用,has_one throught但我认为这种关联不起作用.

Leader.rb

class Leader < ActiveRecord::Base
belongs_to :user
belongs_to :team
Run Code Online (Sandbox Code Playgroud)

Team.rb

class Team < ActiveRecord::Base
has_one :user, through: :leader
end
Run Code Online (Sandbox Code Playgroud)

User.rb

class User < ActiveRecord::Base

belongs_to :team
has_one :captain

end
Run Code Online (Sandbox Code Playgroud)

并在第27行附近得到以下错误:

NoMethodError in TeamsController#create

26 def create

**27 @team = current_user.teams.create(team_params)**

28 @team.save

29 respond_with(@team)

30 current_user.update(team_id: @team.id)
Run Code Online (Sandbox Code Playgroud)

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

27
推荐指数
2
解决办法
5220
查看次数

翻译模型嵌套属性验证消息

我有一个嵌套属性,我在其上执行状态验证.我正在尝试没有成功提供完整错误消息文本中返回的属性名称的翻译.

调用模型Identity并包含一个名为identity的模型.模型嵌套在另一个具有has_many关系的模型中.

当前返回典型的错误消息

Identities identity can't be blank
Run Code Online (Sandbox Code Playgroud)

我想将属性(默认情况下Identities identity)转换为其他内容.

我有

en:
  activerecord:
    models:
      identity:
        identity: "whatever"
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我会收到错误

I18n::InvalidPluralizationData (translation data {:identity=>"whatever"} can not be used with :count => 1):
Run Code Online (Sandbox Code Playgroud)

我试图通过改变上面的内容来为此添加复数数据

en:
  activerecord:
    models:
      identity:
        identity:
          one: "one"
          other: "other"
Run Code Online (Sandbox Code Playgroud)

这会将错误更改为

I18n::InvalidPluralizationData (translation data {:identity=>{:one=>"one", :other=>"other"}} can not be used with :count => 1):
Run Code Online (Sandbox Code Playgroud)

我也试过many而不是other没有区别.

我已经花了几个小时试图完成这项工作,在Stack Overflow和其他地方阅读了其他问题但没有成功.为属性名称编写翻译的正确方法是什么?

ruby-on-rails activemodel rails-i18n

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

哪些 svm python 模块使用 GPU?

我想知道哪些 svm python 模块使用 gpu 加速。

是否libsvmscikit-svm使用gpu

如何通过 svm 使用 GPU 加速?

python gpu machine-learning svm

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

ROR推送通知引擎

我最近被分配了一个开发通知引擎的任务.对于通知,我们将使用推送通知.我正在为引擎寻找最佳解决方案,因为将来我们还必须将应用程序扩展到其他设备.以下是该项目的一些细节

后端: 应用程序的后端在Ruby on Rails中作为webservices开发

设备将推送通知 iPhone,Android,Pebble(智能手表),Web应用程序

当前解决方案: 目前,我们正在考虑为通知制作后端数据库表.Rails中的工作类将在1分钟后运行,它会将所有通知推送到存储在数据库中的设备.从webservice方法,我们将在通知表中插入数据.

为推动通知,我们不想使用UrbanShip等服务.我们只会使用Ruby Gems来实现它们.目前,我们基于GCM gem进行了一个小型演示,用于Android推送消息.

问题:我对解决方案的态度是否正确?或者是否有更好的解决方案来解决这类问题.

编辑:

我认为我之前对这个问题的描述有点令人困惑.

最终,我们将使用Ruby中的GEMS发送推送通知.例如,对于iOS,我们将使用Houston或Grocer gem以及Android GCM.

问题:我们需要一些数据库表来存储通知,以便GEMS(如上所述)可以使用它们向用户发送通知.现在,为了填充数据库表,我们需要在某处编写逻辑,以便我们可以在表中插入通知.

例如,假设当用户首次在应用程序中注册时,我们会向他发送通知.现在,为此,我们需要编写用于在Register函数中添加通知的代码.

喜欢

public void Register()
{
   //Registration logic

   //Add a notification in the notification table
}
Run Code Online (Sandbox Code Playgroud)

现在,这是一个问题,因为我们需要在需要发送通知的所有函数中添加通知逻辑.在ROR或一般情况下还有其他好的解决方案吗?一些设计模式?

rubygems ruby-on-rails push-notification apple-push-notifications android-notifications

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

Rails 异常不适用于 find_by 查询

异常处理不适用于 rails 中的 find_by 查询,代码如下:

  ab = User.find_by_uniq_token(params[:uniq_token])
Run Code Online (Sandbox Code Playgroud)

不提高例外...而:

  ab = User.find(:id)  # is working fine...
Run Code Online (Sandbox Code Playgroud)

我在应用程序控制器中有异常处理代码,例如:

  rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found


  def record_not_found
    if current_user
      flash[:notice] = "Record not found "
      redirect_to authenticated_root_url
   else
     flash[:notice] = "Record not found ."
     redirect_to unauthenticated_root_url
     # Assuming you have a template named 'record_not_found'
   end
 end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

ActiveRecord :: AdapterNotSpecified:未配置'postgresql'数据库

我试图弄清楚如何修复活动记录问题,以便我可以推送到heroku.

----->为Rails资产管道准备应用程序运行:rake资产:预编译rake中止!ActiveRecord :: AdapterNotSpecified:未配置'postgresql'数据库.可用:["development","adapter","encoding","database","host","pool","username","password","production"]

  development:
  adapter: postgresql
  encoding: unicode
  database: sample_app_development
  host: localhost
  pool: 5
  username: sample_app
  password: 

test:
  adapter: postgresql
  encoding: unicode
  database: sample_app_test
  host: localhost
  pool: 5
  username: sample_app
  password: 


production:
  adapter: postgresql
  encoding: unicode
  database: sample_app_production
  host: localhost
  pool: 5
  username: sample_app
  password: 
Run Code Online (Sandbox Code Playgroud)

postgresql activerecord ruby-on-rails heroku heroku-postgres

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

从C#调用REST API

我在JAVA中开发了基于REST的API.现在我试图从基于控制台的C#应用​​程序调用该API,即从它的主要功能.我想知道是否可以这样做.我尝试了一些东西,但它不起作用

//我在我的类文件中写了下面的代码.但是我找不到RestClient类.我需要包括这个

static void Main(string[] args)
        {
             {

                 string endPoint = @"http:\\myRestService.com\api\";
                 var client = new RestClient(endPoint);
                 var json = client.MakeRequest();
              }
         }
Run Code Online (Sandbox Code Playgroud)

c# rest

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

在javascript中声明数组的最简单方法是什么,包含元素1,2,3 ...... n

我想声明一个具有整数元素1到n的数组,其中n可以是100或更大.所以,很明显我不想手动添加所有整数(1到100).

有人可以建议我在javascript中执行此操作的最简单方法吗?我认为应该有这样的事情:[1..n],但它不起作用.

编辑:

更多澄清要求:

我需要这个:var arr = [1,2,3,4,5,6,7,8,9,10,11,....,100]但我不想声明这样我必须手动编写每个元素.我需要一些更好的选择来做到这一点.

javascript arrays

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