私は現在、私が編集または新しいアクションを行っている場合、それを送信するボタンを変更しようとしているいくつかのフォームを持っています。私は2つのフォームを作成しましたが、これは悪臭があり、今はただ1つのフォームの部分を使用しています。Rails 3 - フォーム、アクションに基づいたカスタム送信ボタン?
私の部分の終わりに、私は自分のフォームの終わりに、このような何かを持っている:
<p>
<% if controller.action_name == 'new' %>
<%= f.submit "Create", :class => "pink_button"%> or
<% elsif controller.action_name == 'edit' %>
<%= f.submit "Update", :class => "pink_button"%> or
<% end %>
<%= link_to "cancel", :back %>
</p>
そのように私はいくつかの新しいを作成していた場合、ボタンは、「作成」を読み、もしユーザーが完了しようとしている更新プログラムで、「更新」ボタンが表示されます。フォームが送信され、検証が失敗するまで、これはうまくいきます。私のコントローラで
、私はそうのように失敗しないものをキャッチしています:
def update
@list = current_user.lists.find(params[:id])
if @list.update_attributes(params[:list])
redirect_to list_path(@list), :notice => "List '#{@list.name}' updated."
else
render :action => 'edit'
end
end
ので、フォームが単に再レンダリングです。問題は、私はもはや編集パスではないということです。つまり、フォームボタンが表示されなくなります。
私は何をしようとしていますか?
ありがとうございました
おかげサミールを参照してください、詳細は
を使用!私はあなたの提案をこのように使用しました:<%= f.submit @ chore.new_record? ? "あなたの雑用を投稿する": "あなたの雑用を更新する"、:class => "marginTopBottom"%> –