2014-03-01 34 views
0

我最近添加一個字段「標籤」,以建立在Rails的4.我的博客的應用程序下面你可以看到現場出現在編輯觀點:軌道4 - 柱存在,但不更新

rendered form

但是,一旦我回到編輯後的顯示來看,這不會出現:

Post view

當我直接檢查數據庫,我可以明確的看到它的存在:

sqlite> PRAGMA table_info(POSTS); 
0|id|INTEGER|1||1 
1|title|varchar(255)|0||0 
2|body|text|0||0 
3|created_at|datetime|0||0 
4|updated_at|datetime|0||0 
5|slug|varchar(255)|0||0 
6|tag|varchar(255)|0||0 

任何人都可以建議發生了什麼或如何解決這個問題?

+1

你有沒有顯示任何錯誤,服務器日誌?這將有助於調試。也許這是一個問題,忘記在允許的參數中包含「標籤」(假設您使用強參數) – benjaminjosephw

+0

我不知道您說了什麼,但是當我檢查控制器的帖子時,發現'post_prams'確實沒有包含':tag'。彈出它,它在那裏。謝謝先生!我如何設置你的答案是答案? – Tamachan87

+1

我已經發布了更多解釋的答案。 – benjaminjosephw

回答

2

默認情況下,Rails 4使用strong parameters。這意味着你必須明確白名單你想批量分配的參數。

向模型添加新屬性時,必須記住更新控制器中允許的參數。

例如,在你的情況,你需要確保:tags添加像這樣:

class PostController < ActionController::Base  

    def update 
    post = Post.find(params[:id]) 
    post.update(post_params) 
    redirect_to post 
    end 

    private 

    def post_params 
    params.require(:post).permit(:title, :body, :tag) 
    end 

end 
+0

謝謝,這是一個完美的解釋。 – Tamachan87