2016-12-15 138 views
1

我對rails和編程一般都很陌生。我有一個Rails項目,包括在HTML表單如下靜態頁面:將HTML輸入標籤轉換爲FormHelper標籤?

<span class="form-group"> 
     <input class="balloon" name="ex1" id="text1" type="text" placeholder="Stuff Here" /><label for="text1">Stuff</label> 
    </span> 
    <span class="form-group"> 
     <input class="balloon-num" name="ex2" id="num1" type="number" min=1 max=12 placeholder="1-12" /><label for="num1">Stuff</label> 
    </span> 
    <span class="form-group"> 
     <input class="balloon-num" name="ex3" id="num2" type="number" min=1 max=12 placeholder="1-12" /><label for="num2">Stuff</label> 
    </span> 
    <span class="form-group"> 
     <input class="balloon-num" name="ex4" id="num3" type="number" min=1 max=5 placeholder="1-5" /><label for="num3">#</label> 
    </span> 
    <span class="form-group"> 
     <button class="button" id="generate" type="button"><i class="fi-arrow-right"></i></button> 
    </span> 

我需要輸入類,ID和佔位由於CSS輸入的造型。現在我正在學習如何在鐵軌這些輸入發送到數據庫,並以我的理解它需要使用紅寶石表單助手語法,就像這樣:

<% form_for @example do |f| %> 
    <%= f.label :ex1 %> 
    <%= f.text_field :ex1 %> 
    <%= f.label :ex2 %> 
    <%= f.number_field :ex2 %> 
    <%= f.label :ex3 %> 
    <%= f.number_field :ex3 %> 
    <%= f.label :ex4 %> 
    <%= f.number_field :ex4 %> 
    <%= f.submit 'Submit' %> 

我的問題是我怎麼寫後者格式同時保留ID,名稱,佔位符等?


UPDATE:現在越來越「在形式上第一個參數不能包含零或爲空」的錯誤,當我檢查,看看我的變化工作,下面是我的控制器文件:

class SwatchgenController < ApplicationController 
    def new 
    @colours = Colours.new 
    end 
    def create 
    @colours = Colours.new(colours_params) 
    if @contact.save 
     redirect_to new_colours_path, notice: "Message sent." 
    else 
     redirect_to new_colours_path, notice: "Error occured." 
    end 
    end 
    private 
    def colours_params 
    params.require(:colours).permit(:colour, :bold, :bright, :num) 
    end 
end 

我已經過三重檢查,表單標籤上寫着form_for @ colours,所有的ID也是正確的。我正在學習一個旨在創建聯繫頁面的教程(同樣在一個單獨的頁面上,而我的教程都在一個頁面中),所以如果沒有意義,這就是爲什麼。

下面是在頁面上我的更新形式:

<%= form_for @colours do |f| %> 
     <%= f.label :colour %> 
     <%= f.text_field :content, required: true, class: "balloon", id: "colour", placeholder: "Colour category (red, blue..)" %> 
     <%= f.label :bold %> 
     <%= f.number_field :content, required: true, class: "balloon-num", id: "bold", placeholder: "1-12" %> 
     <%= f.label :bright %> 
     <%= f.number_field :content, required: true, class: "balloon-num", id: "bright", placeholder: "1-12" %> 
     <%= f.label :num %> 
     <%= f.number_field :content, required: true, class: "balloon-num", id: "num", placeholder: "1-5" %> 
     <button class="button" id="generate" type="button"><i class="fi-arrow-right"></i></button> 
<% end %> 
+0

好吧,我可以告訴你運行一個單獨的項目,創建具有支架控制器,進行比較同直接的項目,看看你是什麼可能會失蹤。你也可以這樣學習。但請閱讀Rails指南。 –

+0

有一個名爲simple_form的gem,你可能會覺得很有用:https://github.com/plataformatec/simple_form – Brad

回答

2

你不必用Rails形式幫手。這只是一種構建表單的便捷方式,但如果您喜歡使用自己的表單,則可以這樣做。所有你需要做的就是創建一個表單,並點用正確的方法正確動作:

您可以使用純HTML形式的形式幫手做什麼呢。您必須指定控制器,你在你的形式指定

您可以用的form_tag開始,但裏面你可以把你的普通的HTML表單輸入字段

<%= form_tag(send_email_path, method: "post", :class=>"form-horizontal") do %> 
    <label class="col-md-3 control-label" for="subject">Subject</label> 
    <input id="subject" name="subject" type="text" placeholder="Email Subject" class="form-control"> 
<% end %> 

如果你想使用在助手的form_for您可以通過這些東西作爲選項:

<%= form_for @person do |f| %> 
<%= f.text_area :content, required: true, class: "your html class", id: "you html id", placeholder: "your placeholder text" %> 

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

編輯

你的表格必須改變其中星號是:

<%= form_for @colours do |f| %> 
     <%= f.label :colour %> 
     * <%= f.text_field :colour, required: true, class: "balloon", id: "colour", placeholder: "Colour category (red, blue..)" %> 
     <%= f.label :bold %> 
     * <%= f.number_field :bold, required: true, class: "balloon-num", id: "bold", placeholder: "1-12" %> 
     <%= f.label :bright %> 
     * <%= f.number_field :bright, required: true, class: "balloon-num", id: "bright", placeholder: "1-12" %> 
     <%= f.label :num %> 
     * <%= f.number_field :num, required: true, class: "balloon-num", id: "num", placeholder: "1-5" %> 
     * <%= f.submit %> /// this is your button 
<% end %> 
+0

謝謝,我現在收到一個錯誤:當我嘗試「表單中的第一個參數不能包含零或爲空」時查看頁面以查看它是否工作,不知道爲什麼。我用我的控制器文件更新了最初的問題。 – Lacomus

+1

當你創建一個表單時,你可以像你一樣將它傳遞給一個實例變量,但是你必須在你的控制器中定義該實例變量。例如,除非在控制器的show動作中定義「@example」,否則show.html.erb中的「@example」將顯示一個錯誤。這樣,當你發佈到「@example」時,你的控制器知道該怎麼做。 –

+0

是不是我在做: def new @colours = Colours.new 在我的控制器文件中結束? – Lacomus