小编Nek*_*eko的帖子

Rails:在has_one关联上创建

嗨(巨大的Rails新手在这里),我有以下型号:

class Shop < ActiveRecord::Base
  belongs_to :user
  validates_uniqueness_of :title, :user_id, :message => "is already being used"
end
Run Code Online (Sandbox Code Playgroud)

class User < ActiveRecord::Base
  has_one :shop, :dependent => :destroy
end
Run Code Online (Sandbox Code Playgroud)

当我即将创建一个新商店时,我收到以下错误:

private method `create' called for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

@user = current_user
@shop = @user.shop.create(params[:shop])
Run Code Online (Sandbox Code Playgroud)

我通过阅读指南和教程尝试了不同的变化,但我比以前更困惑,无法让它工作.任何帮助将不胜感激.

ruby-on-rails

93
推荐指数
3
解决办法
5万
查看次数

Ruby on Rails:检查商店拥有的产品数量

我正在搞乱测试/练习项目,只是为了更好地理解Rails.

在我的情况下,我有三个模型:商店,用户和产品.

商店可以有三种类型:基本,中等,大型.基本最多可以有10个产品,中等50个,大100个.

我正在尝试验证这种数据,Shop的类型,并检查它在创建新产品时拥有多少产品.

到目前为止,我想出了这个代码(在shop.rb中),但它不起作用:

  def lol
      account = Shop.find_by_sql "SELECT account FROM shops WHERE user_id = 4 LIMIT 1"
    products = Product.count_by_sql "SELECT COUNT(*) FROM products WHERE shop_id = 13"
    if account = 1 && products >= 10
        raise "message"
    elsif   account = 2 && products >= 50
        raise "message"
    else account = 3 && products >= 100
        raise "message"
    end
end
Run Code Online (Sandbox Code Playgroud)

我甚至不知道我的解决方案背后的逻辑是正确的还是什么.也许我应该验证使用

has_many
Run Code Online (Sandbox Code Playgroud)

和它的"大小"方法?我不知道.:)

ruby ruby-on-rails

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

标签 统计

ruby-on-rails ×2

ruby ×1