別のコントローラー(登録)から(登録コントローラーから)リダイレクトするイベントコントローラーがあります。
format.html { redirect_to new_event_path(:event_count => 15) }
(Event controller)
def new
logger.info params
@event = Event.new(:event_count => params[:event_count])
......
def create
@event = Event.new(params[:event])
and inside views/events/new.html.erb
<%= f.hidden_field :event_count %>
ただし、これを実行しようとすると、次のメッセージが表示されます。
unknown attribute: event_count
ログファイルを新規からチェックアウトすると、パラメータハッシュに{"event_count":"15"}が含まれていることがわかります。
event_countが私のイベントテーブルにないことに注意してください。助言がありますか?
より詳しい情報
イベントモデルの仮想属性として、すでにevent_countがあります。
attr_accessible :event_count
これは実行時にのみ使用される値であり、DBに保存されることはありません。最初はセッション変数を使用してこの値を渡していましたが、これを実行するためのよりクリーンで安全な方法があるかどうか疑問に思いました。
何がうまくいったか:
私はattr_accessor:event_countをEvenモデルから削除しました。
イベントコントローラの場合:
def new
@event_count = params[:event_count]
@event = Event.new
def create
.....
@event_count = params[:event][:event_count]
そして私のviews/event.html.erb
<%= f.hidden.field :event_count, :value => @event_count %>