2011-07-14 14 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 %> 

後者は私にこの結果を与えます: syntax error、unexpected keyword_else、expecting keyword_end '); else

&の更新を別の方法で作成する必要がありますか?

ありがとうございました。

答えて

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

ありがとうございます。だから私はこのように2つのフォームを持つ必要がありますか?または、簡単に_form.html.erbページを呼び出して、私が推測することを含めますか? – Slowfib

+0

このようにすると、2つのフォームが必要になるか、部分的に2回レンダリングされますが、 'form_for'はブロック(' do | f | ... end')を受け入れるメソッドであり、部分的にまたはヘルパーでブロックをform_forに渡すことが可能であることを確かめてください。 – Bohdan

+0

Hmmm weird ... PHPに慣れていて、Railsがどのように動作するかを追う必要があると思います。私は部分的なフォームを2回レンダリングしました。迅速な対応をありがとう、私はそれを感謝します! – Slowfib

関連する問題