Ruby - 从全局变量设置外键

时间:2012-03-23 20:26:35

标签: ruby-on-rails

我有两个名为worequest和status的模型。 worequests has_many状态和状态属于worequest。 状态表有一个名为worequest_id的外键。

如果有人正在寻找一个worequest,我想让他们创建一个新的状态记录。

所以,我在worequest show页面上创建了一个按钮。我以为我会将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 :(得分:0)

你应该只使用会话。

session[:worequest_id] = @worequest.id

然后当你到达另一页时,只需调用该值并将其放入。

f.hidden :worequest_id, :value => session[:worequest_id]

答案 1 :(得分:0)

谢谢瑞穗。 我使用了会话的想法:

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

在你发表评论之前,我没有在&lt;%之后的=。一旦我把它放进去,它就有用了。