1

タイトルと本文を含むユーザーが入力するフォームがあります。また、Cookie に保存されているユーザー ID と、他のいくつかの計算値も渡したいと思います。

コントローラーの作成セクションには、次のコードがあります。

@ticket = Ticket.new(params[:ticket])
@ticket.save
redirect_to ticket_path(@ticket)

Ticket.new 呼び出しの後にこれらの計算値を割り当てる必要がありますか、またはこれらを params ハッシュと一緒に渡すことはできますか?

4

2 に答える 2

3

params のチケット キーは単なるハッシュであるため、マージを使用してキーと値のペアを追加できます。

@ticket = Ticket.new(params[:ticket].merge({user_id: cookies[:user_id]}))
@ticket.save
redirect_to ticket_path(@ticket)

Active Relation を使用していると仮定すると、次のUser has_many :ticketsようなこともできます (この例ではcurrent_user、Devise に似たものによって定義されていると想定しています)。

@ticket = current_user.tickets.build(params[:ticket])
@ticket.save
redirect_to ticket_path(@ticket)

2 番目の方法では、何をしようとしているのかが少し明確になります。

于 2012-07-23T20:20:12.380 に答える
0

フォームで使用f.hidden_fieldして、追加の計算値を渡すことができます。

チケットに割り当てたい場合current_userは、別の割り当てで行い、保護しておくことをお勧めします。

于 2012-07-23T20:10:37.323 に答える