我在rails中遇到一些关系问题。我的应用程序具有发布者和网站之间的关系。
当我使用f.collection_select
关系向发布商添加网站时,关系正常。但是,如果我创建一个嵌套路由并使用
localhost:3000/publishers/8/sites/new
<% = Link_to ("Add site", new_publisher_site_path (publisher), class "btn btn-default navbar-btn")%
def new
@publisher = Publisher.find(params[:publisher_id])
@site = Site.new
end
它没有形成关系。
答案 0 :(得分:0)
假设发布商与网站之间的关系为发布商has_many :sites
和网站belongs_to :publisher
:
在站点控制器中执行此操作:
def new
@publisher = Publisher.find(params[:publisher_id])
@site = @publisher.sites.new
end
def create
@publisher = Publisher.find(params[:publisher_id])
@site = @publisher.sites.new(sites_params)
if @site.save
redirect_to publishers_path
else
render 'new'
end
end
答案 1 :(得分:0)
如果您指的是模型Site
和Publisher
之间的关系,则应使用has_many
,has_one
,belongs_to
或其他关联rails assosiations。< / p>
然后你可以写:
def new
@publisher = Publisher.find(params[:publisher_id])
@site = @publisher.sites // sites only associated with Publisher.find(params[:publisher_id])
end