位置有列表。从位置索引中,我希望用户能够添加新的列表(属于该位置),然后重定向到更新的索引。嵌套路由在创建时失败
我的路线如下:
match 'listings/search' => 'listings#search'
resources :locations do
resources :listings
end
resources :locations
resources :listings
match "listings/:location" => 'listings#show'
下面是上市的形式:
<%= form_for(@listing, :url=>"/locations/#{@location_id}/listings") do |f| %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我想这应该调用创建方法listings_controller:
def create
@location= Location.find(params[:location_id])
@location_id = @location.id
@listing = @location.listings.create(params[:listing])
respond_to do |format|
if @listing.save
redirect_to location_listings_path(@location_id)
else
format.html { render action: "new" }
end
end
end
当我按提交时,它重定向到/位置/ 1 /列表 这是确切的我想要什么。但窗口是空白的。如果我按刷新(任何其他时间访问位置/ 1 /列表),它会正确显示索引。
您可以删除'respond_to'块(留下内容),但将else改为“render:new”。 – jvnill
哇。非常感谢。这是从脚手架代码中遗留下来的,我从不会认为这是罪魁祸首。它现在正常工作! – tuna
很高兴能有所帮助:)祝你好运! – jvnill