【问题标题】:Using a Nested-Model form as a Partial on a different models's page在不同模型的页面上使用嵌套模型表单作为部分
【发布时间】:2010-10-24 15:49:52
【问题描述】:

我有一个 PhotoAlbums 的嵌套模型表单。该表单通过标准 html 可以正常工作。但是我需要做的是在另一个页面中将其呈现为部分,它出错了:“没有路由匹配

{:action=>"create", :controller=>"photo_albums"}" 

型号:

Projects 
  has_many :photo_albums 
PhotoAlbums 
  belongs_to :project 
  has_many :photos 
Photos 
  belongs_to :photo_album 
Controller: 
  def create 
    @project = Project.find(params[:project_id]) 
    @photoalbum = PhotoAlbum.create(params[:photo_album]) 
  end 

这是通过 HTML 加载和工作的工作表单:

<% form_for [:project, @photoalbum], :html => { :multipart => true } 
do |f| %> 
        <div class="field"> 
        <%= f.label :title %><br /> 
                <%= f.text_field :title %> 
        </div> 
        <% f.fields_for :photos do |builder| %> 
                <% if builder.object.new_record? %> 
                        <%= builder.label :photo, "photo File" %> 
                        <%= builder.file_field :photo %> 
                <% end %> 
        <% end %> 
<% end %> 

我遇到的问题是,将此表单呈现为 在另一个页面中查看。我正在使用以下内容:

<% @photoalbum = PhotoAlbum.new %> 
<%= render :partial => "photo_albums/form",  :locals => 
{:photoalbum => @photoalbum}  %> 

我通过 Rake Routes 进行了检查,我确实有它:

project_photo_albums POST /projects/:project_id/

photo_albums(.:format) 
{:controller=>"photo_albums", :action=>"create"} 

想法?谢谢你

【问题讨论】:

  • 谢谢彼得,我不知道路由标签。

标签: ruby-on-rails ruby-on-rails-3 routes


【解决方案1】:

在您的表单中,您有:

form_for [:project, @photoalbum]

但您的部分似乎只获得了@photoalbum 变量。项目变量呢?

【讨论】:

    猜你喜欢
    • 2012-06-13
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2012-03-11
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多