2016-07-12 2 views
0

この質問は難しいですが、基本的にはクラスモデルとユーザーモデルがあり、各クラステーブルにはトークンがあります各ユーザーが行います。ユーザーがサインアップフォームを送信した後、作成アクションでclass_idというユーザーの値を設定するにはどうすればよいですか?私は<%= f.hidden_field :app_id, :value => App.find_by_token(params[:key]) %>を試しましたが、これは動作しません。長くて紛らわしい質問に申し訳ありませんが、もっと答えてうれしいです。どの回答についても事前に感謝しますあるモデルのテーブル値が別のモデルのテーブル値と一致するかどうか確認してください

答えて

0

ユーザーがクラスに属し、クラスに多数のユーザーが存在する「関係」があるように見えます。そうであれば、レール協会を使って自分で簡単にする必要があります。これには、 'has_many:users'をクラスモデルに追加し、 'belongs_to:class'をUserモデルに追加する必要があります。次に、レールヘルパーを使用してオブジェクトを 'ビルド'し、対応するコントローラに関連付けて保存します。

def create 
    #This would involve you sending the proper class id as a hidden form field with the form field attribute named 'class_id'. You may need to add 'attr_accessor :class_id' to your User model. 
    if user.create(user_params) 
    blahblahblah 
    else 
    sorry blah blah 
    end 
end 

private 

def user_params 
    params.require(:user).permit(:name, :email, :class_id, :etc) 
end 
+1

恐ろしいを:あなたのコントローラから次のようにそれを行うには

マニュアルの方法は次のようになります!質問は恐ろしいですが、助けてくれてありがとう:D – Zaviermiller

関連する問題