1

Stories のスキャフォールドを生成したところ、Stories/New でクリックしたボタンに [Create Story] ​​と表示されました。その値を変更して、「Create Tale」などの別のことを言うにはどうすればよいですか?

私は stories/new.html.erb と stories/edit.html.erb に行きましたが、そこにあるのは

<%= render 'forms' %>

stories/_form.html.erb に向かうと、

<div class="actions">
<%= f.submit class: "btn" %>
</div>

<%= f.submit "Create Tale", class: "btn" %> を入力できることはわかっていますが、そうすると、作成と更新の両方で "Create Tale" と表示されます。ストーリー/編集中に「物語を更新」と言うようにするにはどうすればよいですか?

4

3 に答える 3

2

名前を付けるには、次を試してください。

<%= f.submit class: "btn", name: "Create Tale" %>

アクションに応じて異なる名前を付けるため。私が通常行うことは、ボタン名をアクション ビューからフォーム テンプレートに渡すことです。たとえば、new.html.erb では:

<%= render partial: 'form', button_name: 'Create Widget' %>

edit.html.erb で:

<%= render partial: 'form', button_name: "Update Widget" %>

知らせる:

<%= f.submit name: button_name %>

別の方法は、送信ボタンを「フォーム」パーシャルに配置するのではなく、「new.html.erb」などのアクション ビューに保持することです。

<%= form_for @widget do |f| %>
   <%= render partial: 'form' %>
   <%= f.submit name: 'Create Widget' %>
<% end %>

「edit.html.erb」の場合

<%= form_for @widget do |f| %>
   <%= render partial: 'form' %>
   <%= f.submit name: 'Update Widget' %>
<% end %>

注:コードはテストされておらず、おそらくバグがありますが、ドリフトが発生します...

于 2013-09-25T23:21:15.193 に答える