

Ruby on Railsで開発をしています。  
createとupdateで使うformファイルでf.submitタグの文言はcreateでrenderするかupdateでrenderするかによって自動で変わってるんですが、そこを私が指定したいんです。  
ですが、文言を指定するとcreateとでもupdateでも私が指定した文言に出てしまい困っています。  
create時は’登録’、update時は’修正’と指定したいんですが何か方法があれば教えてください。  
下記は自分のコードです。

[code]

    = form_for @book do |f|
      div.form-group
        .field
          = f.label :番号
          = f.text_field :BookNum, class: 'form-control', placeholder: 'Enter...'
            .
            .
            .
    
    
      div.box-footer
          .actions
          = f.submit 'create book', class: 'btn btn-info pull-right'
    
[/code]


CC BY-SA 3.0
2016-03-03T06:36:12.490
22755
2016-03-03T08:46:33.863
10710
question
ruby-on-rails slim
rails- slimでのf.submitの文言指定


私は、controllerにsubmit用の変数を用意して切り替えています。

app/views/books_controller.rb

[code]

      ...
      # GET /books/new
      def new
        @book = Book.new
        @submit = '登録'
      end
    
      # GET /books/1/edit
      def edit
        @submit = '修正'
      end
      ...
    
[/code]

app/views/books/_form.html_slim

[code]

      ...
      .actions = f.submit @submit
      ...
    
[/code]


CC BY-SA 3.0
2016-03-03T08:32:47.603
22761
2016-03-03T08:32:47.603
7900
22755
answer


i18nの仕組みにのっかって、config/locales/ja.ymlにbookモデル用のhelpers.submitの設定を追加するとよいと思います。  
<http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-
i-submit>

[code]

    = form_for @book do |f|
      div.form-group
        .field
          = f.label :番号
          = f.text_field :BookNum, class: 'form-control', placeholder: 'Enter...'
            .
            .
            .
    
    
      div.box-footer
          .actions
          = f.submit class: 'btn btn-info pull-right'
    
[/code]

config/locales/ja.yml

[code]

    ja:
      helpers:
        submit:
          book:
            create: "登録"
            update: "修正"
    
[/code]


CC BY-SA 3.0
2016-03-03T08:46:33.863
22762
2016-03-03T08:46:33.863
2599
22755
answer