I want to write a helper for a submit button, that takes in account the action (create or update) to get the right translation. Here they are :
fr:
submit:
create:
user: "Créer mon compte"
product: "Déposer l'objet"
session: "Se connecter"
update:
user: "Mettre à jour mon compte"
product: "Modifier l'objet"
I tried this :
def submit_button(model)
if model == nil
I18n.t('submit.create.%{model}')
else
I18n.t('submit.update.%{model}')
end
end
But it didn't worked and rspec send me that :
Capybara::ElementNotFound: Unable to find button ...
I know that's a syntactical problem, but I don't find how to make this work...
You don't need a helper for that, you can achieve it with plain rails. The only thing you need is to properly order your I18n YAML
fr:
helpers:
submit:
# This will be the default ones, will take effect if no other
# are specifically defined for the models.
create: "Créer %{model}"
update: "Modifier %{model}"
# Those will however take effect for all the other models below
# for which we define a specific label.
user:
create: "Créer mon compte"
update: "Mettre à jour mon compte"
product:
create: "Déposer l'objet"
update: "Modifier l'objet"
session:
create: "Se connecter"
After that, you only need to define your submit button like this:
<%= f.submit class: 'any class you want to apply' %>
Rails will take the label you need for the button.
You can see some more info about it here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With