Ruby on rails 创建具有“属于”关联的对象的正确方法是什么?
我对rails还很陌生,我很难理解它的原理,也很难找到“正确”的方法来创建一个对象作为另一个对象的依赖项 我有一个Ruby on rails 创建具有“属于”关联的对象的正确方法是什么?,ruby-on-rails,ruby-on-rails-3,has-many,belongs-to,Ruby On Rails,Ruby On Rails 3,Has Many,Belongs To,我对rails还很陌生,我很难理解它的原理,也很难找到“正确”的方法来创建一个对象作为另一个对象的依赖项 我有一个积压工作模型: class Backlog < ActiveRecord::Base has_many :user_stories end class UserStory < ActiveRecord::Base belongs_to :backlog end 在Backlog控制器的show操作中,我想显示一个链接,以创建属于当前Backlog的UserSt
积压工作
模型:
class Backlog < ActiveRecord::Base
has_many :user_stories
end
class UserStory < ActiveRecord::Base
belongs_to :backlog
end
在Backlog
控制器的show操作中,我想显示一个链接,以创建属于当前Backlog
的UserStory
。我希望它重定向到UserStory
创建表单
<%= link_to 'New User story', "???" %>
如果我放置new\u user\u story\u路径
,它将创建一个新的UserStory
,但不会将其添加到积压工作
我该怎么办
谢谢 您需要有嵌套的路由
app/config/rotues.rb
CodeGlot::Application.routes.draw do
resources :backlogs do
resources :user_stories
end
end
before_filter :get_backlog
def get_backlog
if params[:backlog_id]
@backlog = Backlog.find(params[:backlog_id])
end
end
def new
end
accepts_nested_attributes_for :user_stories
然后您需要有一个嵌套链接:
index.html.erb#或任何文件
<%= link-to "New user story", new_backlog_user_story_path(backlog) %>
app/views/user\u stories/new.html.erb
<div class="form">
<%= form_for([@backlog, @user_stories]) do |f| %>
<div class="actions">
<%= f.submit "Submit", :disable_with => "Submitting..." %>
</div>
<% end %>
</div>
您需要有嵌套的路由
app/config/rotues.rb
CodeGlot::Application.routes.draw do
resources :backlogs do
resources :user_stories
end
end
before_filter :get_backlog
def get_backlog
if params[:backlog_id]
@backlog = Backlog.find(params[:backlog_id])
end
end
def new
end
accepts_nested_attributes_for :user_stories
然后您需要有一个嵌套链接:
index.html.erb#或任何文件
<%= link-to "New user story", new_backlog_user_story_path(backlog) %>
app/views/user\u stories/new.html.erb
<div class="form">
<%= form_for([@backlog, @user_stories]) do |f| %>
<div class="actions">
<%= f.submit "Submit", :disable_with => "Submitting..." %>
</div>
<% end %>
</div>
如果您遇到错误并且不知道如何修复,请告诉我。不需要“接受用户故事的嵌套属性”,因为不涉及嵌套表单。绝对正确。你不需要那个。我基本上是从一个这样做的项目中获取这段代码的,这就是它存在的原因。感谢
blackbird07
如果您遇到错误并且不知道如何修复,请告诉我。不需要“接受用户故事的嵌套属性”,因为不涉及嵌套表单。绝对正确。你不需要那个。我基本上是从一个这样做的项目中获取这段代码的,这就是它存在的原因。谢谢blackbird07