この回答はコメントのようなものですが、質問の内容がわかりにくいので、これを回答にすることにしました。
さあ、フェルナンド、あなたが何をしようとしているのか、どうやって知ることができますか? フォームを送信するアクションは何ですか? アクション フォームがコントローラ アクションにどのように送信されるかがわかるように、routes.rb を見せていただけますか。おそらく、レールの命名規則の問題を避けるために、Action
モデルとコントローラーの名前を や などに変更する必要がありMission
ますActivity
。
params
ハッシュはどのように見えるべきですか? 常に params[:action] があるため、フォームの場合は通常create
orupdate
です。
さらに、組み込みの Rails メソッドを使用してみてください。
# should be a POST method (am I right?)
# why do you call it viewTask?
def viewTask
@task = Task.find(params[:id])
# you'd better avoid extra DB-calls
# @status = @task.status
# @activities = @task.actions
# you can load this with the @task-query by including or joining them
# if you need the @status and @activities models you could do
# @task = Task.find(params[:id], :include => [:task, :activities])
# if you only need the joined objects you should use
@task = Task.find(params[:id], :joins => [:task, :activities])
@activity = Activity.new
if params[:activity]
@activity = @task.activities.build(params[:activity])
@activity.save
end
end
コードでは、タスクモデルが次のようになっていると想定しています。
class Task < ActiveRecord::Base
has_many :activities
belongs_to :status # so it has a field called :status_id
.....
end