0

我正在学习 Rails 3 中的“位置”,我想知道为什么我的代码给了我一个 NoMethod 错误。

  def create
    #get form values from 'new' page
    @post = Post.new(params[:post])

    #search for the inventory item with the sku code the user typed in the form
    @item = Inventory.where(:sku_code => @post.sku_code)

    #set post variable to a variable from the row with the sku code
    @post.detail = @item.detail

    @post.save
  end

通过搜索 SKU,我想检索相同 id 中的其他变量并将它们设置为我的 @post 变量。谁能帮我一把?

4

1 回答 1

1

假设 SKU 代码是唯一的,你必须这样做

@post = Post.new(params[:post])

@post.detail = Inventory.where(:sku_code => @post.sku_code).first.try(:detail)

first将从数据库中获取第一条(可能是唯一的)记录。如果返回不为零,try将尝试获取。detailInventory

查看此博客文章以了解有关try方法的更多信息。

于 2012-07-29T07:32:01.337 回答