2016-09-06 4 views
0

私はRailsアプリケーションを作成しようとしています。作成者とその著者による引用で構成されるデータベースがあります。Railsデータベースエントリを操作するためのクッキー

異なるユーザーがデータベースから引用を破棄または削除することができますが、その特定のユーザーに対してのみ削除する必要があります。つまり、別のユーザーが削除しなかった見積もりを引き続き表示する必要があります。

私はクッキーを実装する必要があることを知っていますが、それ以外の方法はわかりません。誰でも私にチュートリアルを指すことができますか、この複雑なタスクを開始するためのいくつかの指針を私に教えてください。

+0

最初にRailsに慣れて、言語の基礎を学び、小さなデモアプリケーションを開始し、今述べたアプリケーションの開発を開始することをお勧めします。使用する言語の概念を理解していない場合は、チュートリアルを指すのは理にかなっていません。 – SaschaM78

+0

ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [on topic](http://stackoverflow.com/help/on-topic)および[How to Ask](http://stackoverflow.com/help/how-to-ask)をここで適用してください。 StackOverflowは、コーディングまたはチュートリアルサービスではありません。 – Prune

答えて

0

あなたは確かにあなたのアプリケーションにUserモデルを持っている - これについて移動する1「Railsの様」の方法は、UserQuotationhas_and_belongs_to_many関係を追加することです。

これにより、個々のユーザーと 'their'の間に関係が作成されます。この関係は、実際に見積もりを削除することなく削除することができるため、すべての見積もりは他のユーザーが引き続き使用できます。各ユーザーがデフォルトですべての見積を見ることができるようにするには、あらかじめ関係を設定する必要があります。

ユーザーをログインさせるためにDeviseを使用していると仮定すると、引用符を表示するために使用しているコントローラでQuotation.allcurrent_user.quotationsに置き換えるだけです。

上記のリンクRailsのガイドは非常に便利ですが、基本的にはあなただけの次のようなものを追加する必要があります。その後、

class User 
    has_and_belongs_to_many :quotations 

    before_create :add_quotations 

    def add_quotations 
    self.quotations << Quotation.all 
    end 
    #etc... 
end 

class Quotation 
    has_and_belongs_to_many :users 
    #etc... 
end 

と新しいテーブルを追加し、マイグレーションを実行するには、列user_idquotation_idusers_quotationsと呼ばれます。

EDIT

@Yuleが、これは、ユーザーが彼らがいた後に作成された見積書を参照してくださいことはできないだろう、そう、事前に参加するテーブルを設定する必要があるのは非常に迷惑だろう指摘したようにより効率的な方法は、代わりにexcluded_quotations結合テーブルを持つことです。ユーザーは、除外した見積もり以外のすべての見積もりを見ることができます。

+1

これは、ユーザーのために新しい見積もりを保持しないという問題があります。 'inclusion'フィルタ – Yule

+0

@Yuleではなく、除外として使用される結合テーブルを持つ方が良いでしょう。私は編集します! – omnikron

関連する問題