我通過Rails命令rails g portfolio titre:string, thumbnail:string lien:string description:text
爲投資組合生成了一個腳手架。我還添加了FriendlyId以獲得更好的URL,這就是所有。這是'更新'行動。更新數據時奇怪的重定向
def update
if @portfolio.update(portfolio_params)
redirect_to @portfolio, notice: 'Portfolio mis à jour.'
else
render :edit
end
end
然而,想在我的投資組合,以更新項目時,提交按鈕嘗試去通過補丁圖集#更新「,而是把一個「」而不是「/」,這給了我No route matches [PATCH] "/portfolios.test-1"
對於路線,我只有resources :portfolios
編輯:添加的形式
<%= form_for @portfolio, url: portfolios_path(@portfolio) do |f| %>
<% if portfolio.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(portfolio.errors.count, "error") %> prohibited this portfolio from being saved:</h2>
<ul>
<% portfolio.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :titre %>
<%= f.text_field :titre %>
</div>
<div class="field">
<%= f.label :categorie %>
<%= f.text_field :categorie %>
</div>
<div class="field">
<%= f.label :description %>
<%= f.text_area :description %>
</div>
<div class="field">
<%= f.label :thumbnail %>
<%= f.file_field :thumbnail %>
</div>
<div class="field">
<%= f.label :lien %>
<%= f.text_field :lien %>
</div>
<div class="actions">
<%= f.submit 'Enregistrer' %>
</div>
<% end %>
我沒有任何其他的可能性,這樣做@portfolio, url: portfolios_path(@portfolio)
,否則Rails認爲'@portfolio'爲零
編輯2:添加私人'set_portfolio'參數
private
# Use callbacks to share common setup or constraints between actions.
def set_portfolio
@portfolio = Portfolio.friendly.find(params[:id])
end
我的應用有什麼問題?
我們可以看到表單的代碼嗎? – Shannon
我更新了我的問題 – Jaeger