RubyOnRails - předání hodnoty z inputu formuláře do controlleru

ZAJDAN

  • *****
  • 2 110
Zdar...
mám formulář a v něm schovanej input do kterého JSkem posílám hodnoty.

form:
<%= f.hidden_field :localIP, :value => params[:localIP] %>


v controlleru se snažím na patřičné metodě zachytit hodnotu z inputu do sdílené proměné '@localip':
  def update
@commission = Commission.where(:commission_num => params[:commission][:commission_num]).first
    if @commission.update_attributes(update_commission_params)
      @localip = params[:localIP]
flash.now[:notice] = "Zakázka #{@commission.commission_num} byla aktualizována"
render :search
#redirect_to edit_commission_url(params[:id]),:notice => "Zakázka #{@commission.commission_num} byla aktualizována"
    else
      render :edit
    end
  end


tu se potom snažím použít v metodě pro paper_trail:
  def info_for_paper_trail
      {
       :ip => request.remote_ip,
       :agent => request.user_agent,
       :localip => @localip
      }
  end


v dotazu do tabulky pro paper_trail se ale nedostane:
PaperTrail::Version Create (0.3ms)  INSERT INTO "versions" ("item_type", "item_id", "event", "whodunnit", "object", "created_at", "object_changes", "ip", "agent") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


ZAJDAN

  • *****
  • 2 110
Re:RubyOnRails - předání hodnoty z inputu formuláře do controlleru
« Odpověď #1 kdy: 12. 06. 2019, 17:00:56 »
VYŘEŠENO:

v controlleru je potřeba:

prepend_before_action :set_localip, only: :update 

protože paper_trail je volán jako první před metodou update a dále si definovat privatní metodu:

private
    def set_localip
       @localip = params.require(:commission)[:localIP]
    end


Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.