1

私は2つのモデルを持っています。タスクと場所

各タスクには 1 つの場所があります

task.rb

has_one :location

Location モデルのコントローラーを作成しようとしています。これが新しい形です

    <%= form_for(@task.build_Location, :url => task_Location_path(@task)) do |f| %>
        Fields
      <%= f.submit %>
    <% end %>

そして編集フォーム

    <%= form_for(@task.Location, :url => task_Location_path(@task)) do |f| %>
        Fields
      <%= f.submit %>
    <% end %>

現在、アップデートを除くすべての機能が正常に動作しています。

def create
  @location = @task.create_Location(params[:location])
end
def update
  @location = @task.locations.find(params[:id])
end

このメソッドを定義する適切な方法は何ですか?

4

2 に答える 2

2

何をしようとしているのか正確にはわかりませんが...

通常は、ID を介して @task にアクセスします。また、has_one の場合、複数形にはなりません。

タスクの名前を「何か」に更新しようとしていた場合は、次のようにすることができます。

def update
  @location=Location.find(params[:id])
  @location.task.name="something"
  @location.save
end
于 2013-01-09T20:25:04.147 に答える
1
def update
  @location = @task.location.update_attributes(params[:location])
end
于 2013-01-09T21:11:18.717 に答える