2012-05-06 75 views
0

我的數據庫有一個問題,它似乎只是存儲新條目的ID,並顯示在我的形式,而不是:名稱屬性,即時通訊要求。如果我使用我的表單或通過sqlite3瀏覽器查看條目。只顯示ID。Sqlite3數據庫只存儲的ID而不是其他任何其他

這裏是我的移民文件..

class CreateClients < ActiveRecord::Migration 
    def change 
    create_table :clients do |t| 
     t.string :name 
     t.string :detail 
     t.string :more_detail 
     t.string :more_details 

     t.timestamps 
    end 
    end 
end 

我的形式..

<%= form_for @client, :html => { :class => 'form-horizontal' } do |f| %> 
    <div class="control-group"> 
    <%= f.label :name, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.text_field :name, :class => 'text_field' %> 
    </div> 
    </div> 
    <div class="control-group"> 
    <%= f.label :detail, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.text_field :detail, :class => 'text_field' %> 
    </div> 
    </div> 
    <div class="control-group"> 
    <%= f.label :more_detail, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.text_field :more_detail, :class => 'text_field' %> 
    </div> 
    </div> 
    <div class="control-group"> 
    <%= f.label :more_details, :class => 'control-label' %> 
    <div class="controls"> 
     <%= f.text_field :more_details, :class => 'text_field' %> 
    </div> 
    </div> 

    <div class="form-actions"> 
    <%= f.submit nil, :class => 'btn btn-primary' %> 
    <%= link_to t('.cancel', :default => t("helpers.links.cancel")), 
       clients_path, :class => 'btn' %> 
    </div> 
<% end %> 

我的看法..

... 
    <% @client.each do |client| %> 
     <tr> 
     <td><%= link_to client.name, client_path(client) %></td> 
     <td> 
     ... 

而不是顯示名稱(如foo)和然後指向該客戶的詳細信息。它向我展示了/clients/3,當我點擊它時,即使它們是在保存條目時指定的,它也會帶我到一個空名稱和詳細信息字段的頁面。

如果我使用sqlite3瀏覽器。我可以看到entrys已經被保存,但是除了ID之外,每個列都有一個null值。

+0

你相應地設置了attr_accessible嗎?請發佈您的型號代碼 – bruno077

+0

attr_accessible?對不起,即時通訊新的Rails。這個是我的模型..很基本..'class Client Keva161

+0

我在rails服務器上說'SQL(0.7ms)INSERT INTO「clients」(「created_at」,「」)下面加了一個答案 – bruno077

回答

1

我想我知道你的問題是什麼。最新的Rails版本有默認的屬性從質量分配保護,所以你需要指定你想從這樣的模型外部訪問哪些屬性:

class Client < ActiveRecord::Base 
    attr_accessible :name, :detail, :more_detail 
end 

閱讀本section安全指南。 P.S .:控制檯在創建新記錄時是否會拋出任何錯誤?

+0

詳細信息「,」more_detail「,」more_details「,」name「,」updated_at「)VALUES(?,?,?,?,?,?)[[」created_at「,Sun,06 May 2012 18:04:01 UTC +00:00],[「detail」,nil],[「more_detail」,nil],[「more_details」,nil],[「name」,nil],[「updated_at」,Sun,2012年5月6日18: 04:01 UTC +00:00]]' – Keva161

+0

Thnks,但沒有奏效:/我想知道如果問題出現在我的模型中,因爲我將create方法從':id'更改爲':client',並且它現在有用。 '@client = Client.new(params [:client])' 當我嘗試銷燬方法,雖然它說它找不到ID .. – Keva161

+0

好吧,所以你有client.new(params [: ID])?這樣ActiveRecord會創建一個只有id的新記錄,就像你之前經歷的那樣。向我展示你的銷燬方法,發佈你的整個控制器 – bruno077

相關問題