Я немного Rails noob, и у меня проблемы с решением проблемы.Rails 3 проблема с best_in_place и вложенными атрибутами
Я использую Rails 3.2.13 со следующими драгоценными камнями (в дополнении к драгоценным камням по умолчанию):
gem 'devise'
gem 'cancan'
gem 'cocoon'
gem 'best_in_place'
Я использую кокон для работы с вложенными моделями, в данном случае у меня есть (разработать) пользователь, который has_many
проектов и каждого проекта has_many
задач.
Я могу получить всю информацию для отображения (и становятся доступны для редактирования по щелчку) с:
<% @project.tasks.each do |task| %>
<%= best_in_place task, :description, :path => tasks_path, :type => :input %>
<% end %>
Моя проблема заключается в том, что я не могу best_in_place, чтобы сохранить обновления для моего вложенной задачи атрибуты.
Модель проекта:
class Project < ActiveRecord::Base
belongs_to :user
has_many :tasks
attr_accessible :description, :name, :tasks_attributes, :user_id, :tasks
accepts_nested_attributes_for :tasks, :reject_if => :all_blank, :allow_destroy => true
end
Задача Модель:
class Task < ActiveRecord::Base
belongs_to :project
attr_accessible :description, :done, :hours
end
Контроллер проекта:
class ProjectsController < ApplicationController
before_filter :authenticate_user!
def show
@project = Project.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @project }
end
end
def update
@project = Project.find(params[:id])
respond_to do |format|
if @project.update_attributes(params[:project])
format.html { redirect_to @project, :notice => 'Project was successfully updated.' }
#format.json { head :no_content }
format.json { respond_with_bip(@project) }
else
format.html { render :action => "edit" }
#format.json { render :json => @project.errors, :status => :unprocessable_entity }
format.json { respond_with_bip(@project) }
end
end
end
end
Проекты -> show.html.erb:
<% @project.tasks.each do |task| %>
<li class="module-list-item ui-state-default clear">
<section class="task-name left">
<%= best_in_place task, :description, :path => tasks_path, :type => :input %>
</section>
</li>
<% end %>
Что находится в ваших параметрах [] при обновлении? возможно, best_in_place отправляет неправильные параметры, вероятно, ничего в параметрах [: project] и update_attributes (params [: project]) не работает – stef