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

ZAJDAN

  • *****
  • 2 086
    • Zobrazit profil
    • E-mail
Zdar...
mám formulář a v něm schovanej input do kterého JSkem posílám hodnoty.

form:
Kód: [Vybrat]
<%= 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':
Kód: [Vybrat]
  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:
Kód: [Vybrat]
  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:
Kód: [Vybrat]
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 086
    • Zobrazit profil
    • E-mail
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:

Kód: [Vybrat]
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:

Kód: [Vybrat]
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.