1

属性を持つProductモデルがありますprivate。現在のユーザーが自分の非公開製品やその他の製品のみを選択できるようにするメソッドを作成したいと考えています private = false

class Product < ActiveRecord::Base
  attr_accessible :name, :private
  belongs_to :user

  def permission
    unless self.current_user
      unless self.private
      end
    end
  end
end

こんな感じで始まるの?このメソッドをどのように記述しますか? 目標は、これを選択メニューの中に入れることです。

4

1 に答える 1

2

current_userこのためのクラスメソッドを作成し、次のようなものを渡します

class Product < ActiveRecord::Base
  attr_accessible :name, :private
  belongs_to :user

  def self.for_user_or_public(user)
    where("user_id = ? or private = ?", user.id, false)
  end
end

使用法:

products = Product.for_user_or_public(current_user)

選択に関しては、次のようなものが機能するはずです

<%= f.collection_select :owner_id, Product.for_user_or_public(current_user), :user_id, :name, { :include_blank => true } %>
于 2012-08-25T19:46:39.357 に答える