2011-06-23 12 views
0

私は、ユーザーが多くの目標を持ち、目標には多くのタスクがある、目標達成アプリケーションを作成しています。私は、ユーザーがタスクと目標を同時に作成できるようにしようとしています。私が取り組んでいる問題は、目標はちょうど良いですが、それに属するタスクはまったく節約されていないということです。このトピックに関する他のすべての同様の質問から、私は実際のフォームは問題ないと思うが、目標コントローラ内の作成アクションが台無しになっている。申し訳ありませんが、これはちょっとした問題のように思えますが、私はまだ本当に新しいレールです。一度に複数のモデルを保存する際の問題

フォーム

<%= form_for @goal do |f| %>  

    <%= render 'shared/error_messages', :object => f.object %>  
    <p>  
    <%= f.label :content, "Goal" %>  
    <%= f.text_field :content %>  
    </p>  
    <%= f.fields_for :tasks do |ff| %>   
    <p>  
    <%= ff.label :content, "Task" %>   
    <%= ff.text_field :content %>   
    </p>  
    <% end %>  
    <p><%= f.submit "Submit" %></p>  
<% end %>  

ゴールコントローラ

def create 
    @user = current_user 
    @goal = @user.goals.build(params[:goal]) 
    if @goal.save 
    flash[:success] = "Goal created!" 
    redirect_to user_path(current_user) 
    else 
    render 'new' 
    end 
end 

def new 
    @title = "New Goal" 
    @goal = Goal.new 
    @goal.tasks.build 
end 
+1

は私にあなたのビューからHTML出力を表示すると、私は助けることができる場合、私は表示されます。 – glortho

答えて

0
@goal = @user.goals.build(params[:goal]) 
    @goal.tasks.build(params[:goal][:task]) # Here I assume params[:goal][:task] will return an hash with task fields as keys. 
+0

それを実装した後は、私が持ってはならない妥当性の問題にぶつかり、目標と内容が空でないときに空白になったので、保存しません。タスクモデルの検証を削除すると保存されますが、タスクの名前はまだ残っていません。検証は明確に合格するはずなので、ここからどこに行くのかはわかりません... –

+0

これまでにこの問題を解決できましたか? – turbo2oh

関連する問題