小编seb*_*kom的帖子

迁移范围的唯一性

我一直试图找到一种方法来实现这一点,但我找不到任何尝试,所以我在想,也许我的方法是完全错误的.也就是说,如果我希望两个字段的组合是唯一的,我应该在迁移中做些什么?请注意,我不希望它们是索引,只是数据库字段.

例如,对于下面的迁移,我可以单独添加unique: true到字段,但组合?

class CreateSomething < ActiveRecord::Migration
  def change
    create_table :something do |t|
      t.date :datestamp, :null => false
      t.integer :some_number, :null => false
      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

migration ruby-on-rails unique

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

未定义的方法`secret_key ='for Devise:Module(NoMethodError)

我正在使用Rails 4的设计.我有一些问题,一些字段没有在用户视图中呈现,我意识到这是因为它attr_accessible不再支持,所以我浏览了一下并得出结论我应该使用最新版本宝石(3.0.3).

那就是问题出现的时候:

我现在无法运行任何rails命令,因为我收到了undefined method 'secret_key=' for Devise:Module (NoMethodError)错误,即使我降级了gem,它也不会消失.

回滚一些以前的git提交并没有解决它,删除gem并再次进行bundle安装并没有解决它,我开始认为我应该从头开始.

有谁知道怎么走过这个?

devise secret-key ruby-on-rails-4

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

cat~/.gemrc导致"没有这样的文件或目录"

我刚刚在一台全新的MacBook Pro机器上安装了Xcode,Homebrew,git,RVM和Ruby(按照本指南).接下来我要做的是安装Rails(按照本指南),但cat~/.gemrc只给我一个"没有这样的文件或目录".关于我可能做得不好的任何想法?有没有办法我可以手动创建这个文件 - 这是建议与否的事情?

编辑:

gem environment
Run Code Online (Sandbox Code Playgroud)

给出了这个输出

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.24
- RUBY VERSION: 1.9.3 (2012-11-10 patchlevel 327) [x86_64-darwin12.2.0]
- INSTALLATION DIRECTORY: /Users/sebkomianos/.rvm/gems/ruby-1.9.3-p327
- RUBY EXECUTABLE: /Users/sebkomianos/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
- EXECUTABLE DIRECTORY: /Users/sebkomianos/.rvm/gems/ruby-1.9.3-p327/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - x86_64-darwin-12
- GEM PATHS:
   - /Users/sebkomianos/.rvm/gems/ruby-1.9.3-p327
   - /Users/sebkomianos/.rvm/gems/ruby-1.9.3-p327@global
- GEM CONFIGURATION:
   - :update_sources => true
   - :verbose => true
   - :benchmark => false
   - :backtrace => false
   - :bulk_threshold => 1000
- REMOTE SOURCES:
   - http://rubygems.org/ …
Run Code Online (Sandbox Code Playgroud)

ruby gem ruby-on-rails rvm ruby-on-rails-3

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

git push heroku master失败,因为密钥未被授权

几分钟前我在Heroku上注册并尝试部署我的第一个Rails应用程序.一切都工作正常,直到我犯了从Web界面更改应用程序名称的错误.

就是这样,现在两者都是

heroku rename
Run Code Online (Sandbox Code Playgroud)

git push heroku master
Run Code Online (Sandbox Code Playgroud)

失败,因为"你的指纹blahblah密钥无权访问申请".

我尝试从heroku删除我的密钥并退出然后再次(从命令行)但没有任何作用.我不是那么有经验的git所以我认为我的键可能搞砸了但我可以添加,提交并推送到git就好了.

有任何想法吗?

git heroku

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

相当新的rails开发人员对content_tag和helper感到困惑

我正在尝试创建一个日历表来显示公司每个员工的每日可用性.我认为我需要的是一个标题,其中包含每月的日期,然后是每个工作人员的一行(具有与天数一样多的单元格).每个单元格的不同背景颜色将代表不同的可用性状态,并且工作人员会更改,因此我希望动态生成所有这些.

经过网上研究并以Ryan Bates的Railscast#213(日历修订版)作为我的向导,我到目前为止设法生成了我的表格的标题,显示了每个单元格中每月的日期.

到目前为止,这是我的代码:

module ReceptionHelper
def reception(date = Date.today, &block)
    Reception.new(self, date, block).table
end

class Reception < Struct.new(:view, :date, :callback)
    delegate :content_tag, to: :view

    def table
        content_tag :table, class: "calendar" do
            daysHeader
        end
    end

    def daysHeader
        last_day = date.end_of_month.strftime("%d").to_i
        (0..last_day).to_a.map { |day| content_tag :th, day }.join.html_safe
    end
end
Run Code Online (Sandbox Code Playgroud)

现在,问题和困惑开始于此:

  • 正如我所发现的那样,删除&block并删除:callback{...}功能.我不能说我理解为什么.谁有一个很好的解释?

  • 为什么以上工作,但我不能使用(..).each docontent_tag下面的块?

    (0..last_day).to_a.each do |day| 
        content_tag :th do
            day
        end
    end
    
    Run Code Online (Sandbox Code Playgroud)
  • 在我努力为每个员工显示行时,我选择了这个:

    def table
        content_tag :table, class: "calendar" do …
    Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails block helper content-tag

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