2016-06-12 65 views
0

我試圖從簡單的窗體中檢索一些text_input。但事實是,當調用PARAMS [:PARAM_NAME],我得到這樣的事情:窗體參數返回json而不是文本

{"{:readonly=>\"true\", :placeholder=>\"Ville\", :class=>\"form-control\"}"=>"marrakech"} 

知道了所有我需要在這裏是字符串「馬拉喀什」!

這裏是形式:

<%= form_for([@voiture, @voiture.reservations.new]) do |f| %>

<div class="row"> 
    <div class="col-md-12 price_tag"> 
     <span><%= @voiture.prix %>Dhs</span> 
     <span class="pull-right">Par jour</span> 
    </div> 
</div> 

<div class="row"> 
    <div class="col-md-6"> 
     <label>Nom</label> 
     <%= text_field :nom, readonly: 'true', placeholder: 'Nom', class: 'form-control' %>  
    </div> 
    <div class="col-md-6"> 
     <label>Prenom</label> 
     <%= text_field :prenom, readonly: 'true', placeholder: 'Prenom', class: 'form-control', disabled: 'true' %>  
    </div> 
</div> 

<div class="row"> 
    <div class="col-md-6"> 
     <label>CIN</label> 
     <%= text_field :cin, readonly: 'true', placeholder: 'CIN', class: 'form-control' %>  
    </div> 
    <div class="col-md-6"> 
     <label>Age</label> 
     <%= text_field :age, readonly: 'true', placeholder: 'Age', class: 'form-control', disabled: 'true' %>  
    </div> 
</div> 

<div class="row"> 
    <div class="col-md-6"> 
     <label>Ville</label> 
     <%= text_field :ville, readonly: 'true', placeholder: 'Ville', class: 'form-control' %>  
    </div> 
    <div class="col-md-6"> 
     <label>Télephone</label> 
     <%= text_field :telephone, readonly: 'true', placeholder: 'Telephone', class: 'form-control', disabled: 'true' %>  
    </div> 
</div> 

<div class="row"> 
    <div class="col-md-6"> 
     <label>Email</label> 
     <%= text_field :email, readonly: 'true', placeholder: 'Email', class: 'form-control' %>  
    </div> 
</div> 

<div class="row"> 
    <div class="col-md-6"> 
     <label>Check In</label> 
     <%= f.text_field :start_date, readonly: 'true', placeholder: 'Start Date', class: 'form-control' %>  
    </div> 
    <div class="col-md-6"> 
     <label>Check Out</label> 
     <%= f.text_field :end_date, readonly: 'true', placeholder: 'End Date', class: 'form-control', disabled: 'true' %>  
    </div> 
</div> 

<%= f.hidden_field :voiture_id, value: @voiture.id %> 
<%= f.hidden_field :prix, value: @voiture.prix %> 
<%= f.hidden_field :total, id: 'reservation_total' %> 

<h4><span id="message"></span></h4> 

<div id="preview" style="display: none"> 
    <table class="reservation-table" > 
     <tbody> 
      <tr> 
       <td>Day(s)</td> 
       <td><span id="reservation_days"></span></td> 
      </tr> 
      <tr> 
       <td>Total</td> 
       <td><span id="reservation_sum"></span>Dhs</td> 
      </tr> 
     </tbody> 
    </table> 
    <br> 
</div> 

<br> 
<%= f.submit "Book Now", id:"btn_book", class: "btn btn-primary wide", disabled: 'true' %> 

而且控制器:

def create 
    @client = Client.create(nom: params[:nom],prenom: params[:prenom],cin: params[:cin],age: params[:age],ville: params[:ville],telephone: params[:telephone],email: params[:email]) 
    @reservation = Reservation.new(reservation_params) 
    @reservation.client = @client 
    if @reservation.save 
     redirect_to @reservation.voiture, notice: "Votre reservation a bien ete cree" 
    else 
     redirect_to @reservation.voiture, notice: "Erreur" 
    end 
end 
+0

上午初學者,但你肯定,嵌套,你不應該叫像PARAMS [:VOITURE] [:PARAM_NAME] – Maxence

+0

我談論的輸入哪些不是實際上與voiture相關。例如:<%= text_field:nom%> not <%= f.text_field:nom%> – Remis07

+0

嘗試用text_field_tag替換text_field – Maxence

回答

0

你應該做

f.text_field :nom 

但所有你做的是

text_field :nom 

不太清楚,如果你在這做了正確的方式,但你應該在這個nested forms

看看,如果你正試圖挽救一個嵌套形式,那麼對於你的情況,我已經做了相當簡單的情況。

clients_controller.rb

def new 
    @client = Client.new 
    @client.reservations.build 
    end 

def create 
    @client = Client.new(client_params) 
    if @client.save! 
    render :show, id: @client 
    else 
    render :new 
    end 
end 

    private 

    def client_params 
    params.require(:client).permit(:name, reservations_attributes: [:start_date, :end_date]) 
    end 

client.rb

class Client < ActiveRecord::Base 
    has_many :reservations 
    accepts_nested_attributes_for :reservations 
end 

注意到accepts_nested_attributes_for這裏。

,並在我的_form.html.erb

<%= form_for(@client) do |f| %> 
    <%= f.text_field :name %> 
    <%= f.fields_for :reservations do |reservation_form| %> 
    <%= reservation_form.text_field :start_date %> 
    <%= reservation_form.text_field :end_date %> 
    <% end %> 

    <%= f.submit %> 
<% end %> 
+0

您好@saad,我非常感謝您的幫助,但它並不能完全解決我的問題,它更復雜。看看:http://stackoverflow.com/questions/37779041/trying-to-make-a-form-using-nested-attributes。再次感謝 ! – Remis07