Vir*_*ren 1 ruby ruby-on-rails ruby-on-rails-4
我有一个非常基本的例子
应用程序/模型/user.rb
#name string
class User < ActiveRecord::Base
has_one :project,dependent: :destroy
validates :name,presence: true
validates_associated :project
accepts_nested_attributes_for :project
end
Run Code Online (Sandbox Code Playgroud)
应用程序/模型/project.rb
#name string
#user_id integer
class Project < ActiveRecord::Base
belongs_to :user
has_many :tasks,dependent: :destroy
validates :name,presence: true
validates_associated :tasks
accepts_nested_attributes_for :tasks
end
Run Code Online (Sandbox Code Playgroud)
应用程序/模型/tasks.rb
#name string
#project_id integer
class Task < ActiveRecord::Base
belongs_to :project,dependent: :destroy
validates :name,presence: true
end
Run Code Online (Sandbox Code Playgroud)
这就是我模型中的全部内容
在控制器端出于测试目的,我有以下代码。
应用程序/控制器/user_controller.rb
def update
@user.project_attributes = {:name => "P#rand(100)",:tasks_attributes => [{name: "Task#{rand(100)}"}]}
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
Run Code Online (Sandbox Code Playgroud)
每次我尝试更新给定用户时,都会遇到stack level too deep
问题
有什么线索吗?
Rails version 4.0.4
Ruby 2.1.2p95
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
409 次 |
| 最近记录: |