Ruby on Rails Доступ к скрытым значениям из контроллера - PullRequest
0 голосов
/ 15 декабря 2009

как получить доступ к скрытым полям значений из класса контроллера.

моё скрытое поле значений

<input id="user_id" name="user.id" size="30" type="text" value="<%= @user.id %>" />

В настоящее время я пытаюсь получить доступ с @ user.id, @user = User.find (@ user.id) но его генерирующая ошибка вроде

"Вызывается id для nil, который по ошибке будет равен 4 - если вы действительно хотите id nil, используйте object_id"

тогда как мне получить доступ к вышеуказанному скрытому значению

спасибо заранее, Махеш

Ответы [ 2 ]

1 голос
/ 15 декабря 2009

Две быстрые заметки. Я бы избежал зависимости от user_id, представленного формой, его легко подделать. Лучше вытащить его из вашей аутентификации в методе создания, обновления или удаления контроллера.

Во-вторых, я бы посмотрел на помощников по форме, таких как hidden_field в пределах form_for или fields_for.

<% form_form @some_model do %>
   <%= f.hidden_field(:some_field_on_the_model) %>
   <%= hidden_field(:some_model, :some_field) %>

Затем вы используете ранее детализированный хэш params для извлечения значений обратно в контроллер.

mymodel = MyModel.find(params[:some_field])
1 голос
/ 15 декабря 2009

Вам нужно изменить название поля на user_id, чтобы оно было более традиционным.

Вы получаете доступ к любым данным POST / GET с помощью хеша params.

# your controller
params[:user_id]
# => "field_value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...