我有一个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"}
思考?谢谢
答案 0 :(得分:0)
在您的表单中,您有:
form_for [:project, @photoalbum]
但似乎你的部分只获得@photoalbum变量。项目变量怎么样?