2011-07-14 53 views
1

有人可以告訴我我在做什麼錯嗎?我使用的是相同的頁面做我的創建和更新的形式有我的頁面頂部此代碼正確:Rails 3 - 無法找出創建/更新表單子句

這工作:

<% if @media.blank? %> 
    <%= form_for(:media, :url => {:action => 'create'}) do |f| %> 
<% end %> 

這不:

<% if @media.blank? %> 
    <%= form_for(:media, :url => {:action => 'create'}) do |f| %> 
<% else %> 
    <%= form_for(:media, :url => {:action => 'update', :id => @media.id}) do |f| %> 
<% end %> 

後者給我這個結果: 語法錯誤,意外的keyword_else,期待keyword_end');否則

我應該以不同的方式創建&更新嗎?

謝謝。

回答

1
<% if @media.blank? %> 
    <%= form_for(:media, :url => {:action => 'create'}) do |f| %> 
    <% end %> 
<% else %> 
    <%= form_for(:media, :url => {:action => 'update', :id => @media.id}) do |f| %> 
    <% end %> 
<% end %> 
+0

謝謝。所以這樣做,我需要有兩種形式呢?或簡單地調用一個_form.html.erb頁面,幷包括我猜? – Slowfib

+0

是的這樣做你需要2種形式或部分渲染2次然而,你的問題是令人深思的,因爲'form_for'是一個接受block('do | f | ... end')的方法,我可以' t肯定是有可能有一個塊在部分或幫手傳遞給'form_for' – Bohdan

+0

嗯奇怪......我習慣了PHP,我想我只需要遵循Rails的工作方式。我用兩次渲染部分表單去了。感謝您的快速響應,我很感激! – Slowfib