2012-03-23 15 views
1

私はworequestとstatusという2つのモデルを持っています。 wrequests has_manyステータスとステータスがwrequestに属しています。 ステータステーブルには、worequest_idという外部キーがあります。Ruby - グローバル変数から外部キーを設定する

誰かが雑誌を見ている場合、私は彼らに新しいステータスレコードを作成させたいと思います。

私は、最悪のショーページにボタンを作成しました。私はこのようなグローバル変数でworequest.idを保存し、新しいステータスレコードを作成するためにリンクすることを考えた:

<% if $current_request == nil %> 
    <%= f.input :worequest_id, :label => 'Request ID' %> 
<% else %> 
    <% f.text_field :worequest_id, :value => $current_request %> 
    <% $current_request = nil %> 
<% end %> 
:新しいステータスページに続いて

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

を、私はこのコードを持っています

しかし、ステータスレコードのworequest.idフィールドはゼロになります。 私も試してみました:

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

任意のアイデア?

+0

グローバル変数は不良です!今ここで何をしようとしているのかは分かりませんが、グローバル化はそれを行う方法ではないことを約束できます。あなたの[クエリ文字列](https://en.wikipedia.org/wiki/Query_string)に 'worequest_id = whatever'を追加してみてください。私は 'link_to'関数が全ての認識できないハッシュオプションをクエリ文字列に追加すると思いますので、かなり痛いはずです。 –

答えて

0

セッションを使用するだけです。

session[:worequest_id] = @worequest.id 

あなたが他のページに行くときに、ちょうど戻って値を呼び出し、それを置く。

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

おかげみずほ。私は<%後に=を持っていなかった、あなたのコメントの前に

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

: 私はセッションのアイデアを使用しました。私がそれを入れたら、それは働いた。

関連する問題