2012-03-02 10 views
0

私は彼のプロフィールに「詳細を追加する」ことができる機能を実装したいと思います。教育は、細部のラベルで、卒詳細ですどうやってこれをRailsに実装できますか?

Education : Degree 

:ここで彼は細部のためのラベルなど、実際の詳細を作成することができるはずです。

さらに、この詳細をvisibleまたはhiddenにするかどうかを決定するオプションも必要です。

新しいモデルプロファイルを使用してこれを実装するにはどうすればよいですか?ユーザーhas_oneプロファイルを関連付けます。

ラベルとテキストを新しく追加した場合は、hashを試してみることもできましたが、ユーザーが詳細を隠すか表示する必要があるかどうかについてユーザーから詳細を得なければならないため、その値を格納するために余分なフィールドが必要になる場合があります(trueまたはfalse)。

私は本当に一緒に実装されているすべてのものを得る方法については本当に混乱しています。

私はこれをどのように実装できるのか、ユーザーがdbのschemaを変更せずに新しい詳細を作成するたびにモデルを更新する方法を教えてください。

私はRails 3.2に取り組んでいます。

答えて

2

私は本当にあなたの問題が表示されていない(または私はそれを得ることはありません)、しかし:

なぜあなただ​​けuser_id:integer name:string content:string visible:booleanとにhas_many AdditionalDataを作成しませんか?

だからあなたは(あなたがスコープscope :visible, where("visible = 1")を定義し@user.additional_datas.visibleをループと仮定することができます

追加された利点:あなたは、このモデルの多形を作り、余分なを作成することなく、あなたのアプリであなたが持っている他のものに追加情報を追加することができます

妥当性確認のために、data_typeフィールドを追加して、データタイプ(URL、電話番号、テキストのみである必要があります)に従って検証を作成することもできます。 ..)

+0

だからに従って、私はモデルAdditionalDataを作成して提供する必要があり、私はハッシュのようなテーブルは、溶液、このようなものかもしれないと思いますユーザーとの関連付けには多くの時間が必要で、ユーザーが新しい詳細を作成するたびに、レコードに新しいエントリを作成するだけです。 ? –

+0

ええ、これです。 – pduersteler

+0

モデルを作成する際にユーザーが多くの関係を持つように指定することはできますか?あなたが多型を行っていない限り、 –

1

私はprを見ませんあまりにもoblem;あなたは、このように記録をつけている

rails generate model UserDetails label:string value:string \ 
    visible:boolean user:references 

user.details.create(:label => 'Dog name', :value => 'Fuffy' :visible => false) 
関連する問題