#ruby-on-rails #ruby #ruby-on-rails-3
#ruby-on-rails #ruby #ruby-on-rails-3
Вопрос:
У меня есть _form partial, в котором rails автоматически называет кнопки отправки для меня, для новых и редактируемых представлений. В новом представлении я предпочитаю, чтобы значение кнопки отправки просто читалось «Создать» вместо «Создать ссылку»
Я добился этого с помощью <%= form.submit "Create" %>
Как мне заставить rails отображаться <%= form.submit "Update" %>
в режиме редактирования и <%= form.submit "Create" %>
в новом, ожидающем, в каком представлении отображается ‘_form.html.erb’? Спасибо
Ответ №1:
Ну, я предполагаю, что вы передаете объект, например @user
, например. В этом случае в вашей _form сделайте это:
<% editing = @user.new_record? ? false : true %>
<% default_text = editing ? "Update" : "Create" %>
<% form.submit default_text %>
Я сделал здесь отдельные переменные editing и default_text, но вы могли бы сделать это в одной строке, например:
<% form.submit @user.new_record? ? "Create" : "Update" %>
Единственная причина, по которой я показал вам переменные, заключается в том, что они легко масштабируются для другого текста, который у вас есть в вашей форме.
Редактировать Я должен также упомянуть, что смысл использования new_record?
работает, если для нового пользователя (например) вы просто устанавливаете @user как User.new в вашем контроллере, но для редактирования вы делаете User.find(…) .
Комментарии:
1. Спасибо, я использовал @link.new_record? вместо user.
2. Пожалуйста. Обычно я просто использую @user в качестве примера перехода, хех.
3. Да, это моя первая итерация, поэтому я еще не создал пользователей