小编sta*_*ord的帖子

使用user生成模型:references vs user_id:integer

我对如何生成属于另一个模型的模型感到困惑.我的书使用此语法将Micropost与User关联:

rails generate model Micropost user_id:integer
Run Code Online (Sandbox Code Playgroud)

但是http://guides.rubyonrails.org/说这样做:

rails generate model Micropost user:references
Run Code Online (Sandbox Code Playgroud)

这些2产生的迁移是不同的.另外,对于前者,rails如何知道这user_id是一个外键引用user?谢谢!

ruby-on-rails

170
推荐指数
3
解决办法
12万
查看次数

如何在rails中创建单例全局对象

我有一个我想创建的对象,可以在我的一个模型中访问.我把他放在哪里?我担心如果我把他放在模型类文件中,每次我创建该模型的新实例时都会创建它.我只想在启动时创建一次这个对象.这是对象:

require 'pubnub'    
publish_key   = 'fdasfs'
subscribe_key = 'sdfsdsf'
secret_key    = 'fsdfsd'
ssl_on        = false

pubnub_obj = Pubnub.new(publish_key,
                    subscribe_key,
                    secret_key,
                    ssl_on)
Run Code Online (Sandbox Code Playgroud)

我在模型中使用他这样:

class Message < ActiveRecord::Base

  def self.send_new_message_client(message)
    message = { 'some_data' => message }
    info = pubnub_obj.publish({
                            'channel' => 'testing',
                            'message' => message
                          })
    puts(info)
  end

end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-3

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

Rails基于相关模型的属性对条目进行排序

我有一个奇怪的场景:我想在P的创建者和当前用户成为朋友之前订购所有帖子P.

结果将是在顶部的较新朋友帖子和底部的较老朋友帖子的帖子列表.我们可以假设所有用户都是所有其他用户的朋友,但每个友谊都有不同的创建时间.

我有Post,User和Friendship模型.帖子属于用户,用户有很多友谊.

class User < ActiveRecord::Base
  has_many :friendships
  has_many :friends, :through => :friendships
  has_many :inverse_friendships, :class_name => "Friendship", :foreign_key => "friend_id"
  has_many :inverse_friends, :through => :inverse_friendships, :source => :user
end

class Friendship < ActiveRecord::Base
  belongs_to :user
  belongs_to :friend, :class_name => "User"
end 

class Post < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?谢谢!

ruby-on-rails-3

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

运行python命令行解释器,导入自动加载

我想在python解释器中玩,但有一堆导入和对象设置完成.现在我正在命令行启动解释器并每次都进行设置工作.有没有办法在完成所有初始化工作的情况下启动命令行解释器?

例如:

# Done automatically.
import foo
import baz
l = [1,2,3,4]
# Launch the interpreter.
launch_interpreter()
>> print l
>> [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

python

17
推荐指数
3
解决办法
5575
查看次数

设计:不需要电子邮件

我不想要使用设备登录电子邮件.我从config/initializers/devise.rb中删除了电子邮件:

config.authentication_keys = [ :login ]
Run Code Online (Sandbox Code Playgroud)

并将此添加到我的用户模型:

def email_required?
  false
end
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试保存用户时,我收到此错误:

SQLite3::SQLException: users.email may not be NULL
Run Code Online (Sandbox Code Playgroud)

我想改变迁移中的某些内容吗?

ruby-on-rails devise

16
推荐指数
3
解决办法
8696
查看次数

python:最简洁的方法将父类中的每个方法包装在"with"中

我有一个父类,有一堆类方法:

class Parent():

    @classmethod
    def methodA(cls):
        pass

    @classmethod
    def methodB(cls):
        pass
Run Code Online (Sandbox Code Playgroud)

在我的子类中,我想将一个方法的子集包装在"with"中.它应该达到这个效果:

class Child(Parent):

    @classmethod
    def methodA(cls):
        with db.transaction:
            super(Child, cls).methodA()
Run Code Online (Sandbox Code Playgroud)

我有一堆遵循这种模式的方法,我宁愿不重复自己.有更清洁的方法吗?

python syntactic-sugar

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

Emacs ruby​​-mode缩进私有

有谁知道如何在Emacs中获取ruby-mode来缩进私有下的所有定义?这是一个例子:

def redirect_back_or(default)    
    redirect_to(session[:return_to] || default)    
    clear_return_to  
end 

private

    def user_from_remember_token      
        User.authenticate_with_salt(*remember_token)    
    end
Run Code Online (Sandbox Code Playgroud)

emacs ruby-on-rails

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

Emacs ecb忽略某些文件扩展名

是否有可能使emacs ecb(Emacs代码浏览器)不在目录浏览器中显示.pyc和.pyo文件?

emacs

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

rails在哪里记录javascript中的错误?

我是Ruby on Rails的新手,很抱歉,如果答案很明显,我无法通过搜索找到任何东西.现在我的视图渲染_box.js.erb只是绘制一个框.在正常情况下正常工作的_box.js.erb内部,我引入了一个简单的语法错误,如不匹配的括号.当我加载网页时,我的框不显示.我查看logs/development.logs,它没有提到我的javascript语法错误.这个错误是否被某处抓住了?如果是这样,我该如何显示它?

javascript ruby-on-rails

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

freebase使用什么算法来匹配名称?

我正在尝试使用他们的四维转储构建本地版本的freebase搜索API.我想知道他们用什么算法来匹配名字?例如,如果你去freebase.com并输入"徒步旅行",你会得到

  • "Apo徒步旅行社"
  • "徒步旅行"
  • "远足格鲁吉亚"
  • "远足弗吉尼亚州的国家森林"
  • "爬山径"

search freebase string-search

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

如何使用sequelize添加枚举标签?

我有一张叫做字符的表。每个字符都有一个称为“状态”的枚举,可以是“悲伤”或“快乐”。如何为列添加新状态“ confused”?我尝试了这种迁移,但失败了:

migration.describeTable('characters').success(function (attributes) {
    migration.changeColumn('characters', 'state',
        {
            type: DataTypes.ENUM,
            values: ['sad', 'happy', 'confused']
        })
        .complete(done);
});
Run Code Online (Sandbox Code Playgroud)

它抱怨错误:类型“ enum_characters_state”已经存在。

sequelize.js

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