Ruby - устанавливает внешний ключ из глобальной переменной - PullRequest
1 голос
/ 24 марта 2012

У меня есть 2 модели под названием Worequest и статус. worequests has_many статусы и статус принадлежит worequest. Таблица статусов имеет внешний ключ worequest_id.

Если кто-то просматривает запрос, я хочу разрешить ему создать новую запись статуса.

Итак, я создал кнопку на странице шоу Worequest. Я думал, что я сохраню worequest.id в глобальной переменной, подобной этой, и ссылку для создания новой записи статуса:

<% $current_request = @worequest.id %>
<%= link_to 'New Status', new_status_path, :class => 'btn btn-primary' %>

Тогда на новой странице статуса у меня есть этот код:

<% if $current_request == nil %>
    <%= f.input :worequest_id, :label => 'Request ID' %>
<% else %>
    <% f.text_field :worequest_id, :value => $current_request %>
    <% $current_request = nil %>
<% end %>

Но поле worequest.id в записи статуса заканчивается на ноль. Я также попробовал:

<% f.input :worequest_id, :value => $current_request %>

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 24 марта 2012

Спасибо, Мидзухо. Я использовал сессионную идею:

<%= f.hidden_field :worequest_id, :value => session[:worequest_id] %>

До вашего комментария у меня не было = после <%. Как только я вставил его, оно заработало. </p>

0 голосов
/ 24 марта 2012

Вы должны просто использовать сеансы.

session[:worequest_id] = @worequest.id

Затем, когда вы перейдете на другую страницу, просто перезвоните и вставьте значение.

f.hidden :worequest_id, :value => session[:worequest_id]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...