2013-07-04 56 views
0

給出一個Ruby on Rails的模型,看起來像這樣(DB/schema.rb):修改模型屬性on Rails的控制器

create_table "users", :force => true do |t| 
    t.string "name" 
    t.string "email" 
    t.string "other" 
    end 

users_controller.rb我做:

def new 
    @user = User.new 
    @user.email.downcase! 
    @user.other = "TEST" 
    end 

並在show視圖(show.html.haml):

User details: 
    %b #{@user.name} + #{@user.email} + #{@user.other} 

的問題是,在@user.other值根本不顯示。我的猜測是@user.othernil,但我不知道爲什麼它不會設置爲TEST,因爲我在new控制器操作中設置了它。

在我Users模式,我設置:

attr_accessible :name, :email, :other 

任何想法?

謝謝!

+0

通常'new'方法呈現'new.html.haml',這反過來可以呈現'_form.html.haml'。你爲什麼要檢查'show.html.haml'? –

回答

3

newshow動作是不同的。當您在new中設置某項內容時,並不意味着它會顯示在您的show視圖中。如果您的create行動中有@user.other = "TEST",那麼您肯定會在您的視圖中看到「TEST」爲#{@user.other}

+1

你是對的,我忽略了'new/show'動作是不同的(RoR初學者在這裏),但我學到了一些關於'create'動作的新東西(感謝回覆!)。 – mo5470

相關問題