преобразовать строку в имя поля рельсы - PullRequest
2 голосов
/ 22 марта 2011

необходимо, чтобы действительное значение конвертировалось в имя поля:

Пример:

<% = "price.list _" + current_user.price.to_s%>

так

price.list_1

тогда это мое настоящее имя поля. это name.this поле будет использовать его для выполнения дополнительных операций на мой взгляд.

Ответы [ 2 ]

5 голосов
/ 23 марта 2011

Мне кажется, я понял ваш вопрос.Вам нужно будет использовать функцию отправки

<%= price.send("list_#{current_user.price}".to_sym) %>
1 голос
/ 22 марта 2011

Это должно сработать, но вы также можете сделать

<%= "price.list_#{current_user.price.to_s}" %>

ИЛИ

<p>
  price.list_<%= current_user.price.to_s %>
</p>

ОБНОВЛЕНИЕ: Я неправильно понял вопрос.Для этого потребуется Javascript или AJAX, в зависимости от вашего конкретного приложения.

JS:

:onchange => 'update(this.value)'

function update(new_value) {
  var update_me = document.getElementById('update_this_field');
  update_me.value = new_value;
}

AJAX на рельсах

:onchange => remote_function(:url => {:action => 'update'}, :with => 'Form.element.serialize(this)'), :name => 'foo'

def update
  bar = params[:foo]
  render :update do |page|
    page.replace_html 'update_this_field', "price.list_" + bar
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...