2014-01-10 77 views
2

我對Rails很新。在rails中顯示錶單數據的最佳方式是什麼?

我正在尋找最常見的和「類似軌道」的方式來顯示錶單數據的輸出。我知道簡單的形式和Formtastic是用戶友好的方式編寫簡潔的代碼和顯示輸入字段的好選擇。但是,我正在尋找稍有不同的東西,我想要將這些表單中的數據顯示爲輸出,並且我想以類似和簡明的方式進行操作。過去幾天我一直在找東西,所以我一直無法找到任何東西,所以我想我應該問Stack Overflow。

通常你會做什麼:

  • 編寫自定義幫助程序,以便能夠編寫簡潔的代碼並顯示輸出數據?
  • 使用Simpleform/Formtastic,禁用字段,並將css修改爲 使其看起來像你想要的樣子?
  • 這是否有一個共同的寶石?或者可能是我沒有想過的另一種方式。
  • 首先,感謝您的初步答覆。我想我應該澄清我的問題。由於答案並不完全符合標準。我在控制器中已經有了一個show方法,還有一個視圖模板。目前,我正在使用form_for在大約12個字段的表單中單獨顯示每個字段。例如參見下面的代碼片段:

    <%= form_for(@event) do |f| %> 
        <div class="row-fluid"> 
         <div class="span6"> 
         <%= render 'shared/error_messages' %> 
    
         <%= f.label :title %> 
         <%= f.text_field :title, :disabled => true %> 
    
         <%= f.label :start_date %> 
         <%= f.date_field :start_date, :disabled => true %> 
         </div> 
        </div> 
        <% end %> 
    

    我想也許一個更好的問題是,他們是一個相當於的form_for方法,對用戶的顯示數據,不對其進行編輯,但只是讀了嗎?看起來他們會是一個標準的做法,我沒有發現。

    +0

    「顯示錶單數據」你的意思只是你的控制器的顯示視圖?它與你的表單分開,可能應該以不同的方式顯示。 – sevenseacat

    +0

    沒有一個最好的方法。這是你的選擇,但在你的「show.html.erb」視圖文件中進行。 (我喜歡使用HAML) – gdelfino

    回答

    0

    構建表單的最簡單方法是使用rails g scaffold Example name:string這將生成模型,視圖,控制器以及Name屬性爲字符串的名爲Example的模型的必要數據庫遷移。

    然後,您可以使用html和css來設置視圖的樣式。

    在導軌指南here上有大量有用的信息給你。

    0

    雖然這個問題是比較模糊的,你必須明白,這個功能是什麼Rails的是爲建立正是(提交數據&能夠顯示/別處操縱它)


    數據

    MVC應用程序的數據是由一個非常重要的因素聯繫在一起 - 一個數據庫

    如果你通過表單提交的數據,你的目標是將其存儲在數據庫中,並在其他視圖/控制器方法

    因此顯示它,你的回答直率的問題是MVC processes遵守,與您的數據保存到一箇中央存儲庫(數據庫或其他),你可以再打:

    enter image description here


    查看

    爲了讓您的數據到數據存儲,首先需要提交

    MVC的view部分是你可以顯示你的用戶界面,因此在這裏你可以把你的形式。有一個關於如何設計這個here一個完整的教程,但示威的緣故,這裏的你如何使用您的形式的例子:

    #app/views/posts/new.html.erb 
    <%= form_for @post do |f| %> 
        <%= f.text_field :title %> 
        <%= f.text_field :body %> 
        <%= f.submit %> 
    <% end %> 
    

    控制器

    數據你輸入到您的視圖將被髮送到您的控制器保存

    該數據通過HTML POST方法發送,由Rails作爲params[]散列讀取。此散列包含HTML表單的所有已發送的郵件,並可以這樣使用:

    #app/controllers/posts_controller.rb 
    def new 
        @post = Post.new 
    end 
    
    def create 
        @post = Post.new(post_params) 
        @post.save 
    end 
    
    private 
    def post_params 
        params.require(:post).permit(:title, :body) 
    end 
    

    型號

    新創建Post對象上的.save方法,主要是告訴你的模型將數據放入數據庫(或其他數據存儲區),然後稍後可以使用該數據庫(使用.find方法或類似方法)

    #app/models/post.rb 
    Class Post < ActiveRecord::Base 
        #stuff here 
    end 
    

    重要的是要注意你的模型不您的數據是非常重要的,他們只是提供一個接口(API如果你)將數據保存到某種數據存儲(即,DB)

    模型是非常重要的,因爲它們允許你構造&關聯你的數據,創建部署真正深的能力&強大的應用程序

    相關問題