2017-04-09 50 views
0

好......所以我得到:標題和:含量的form_for助手,並將它們保存在我的模型,張貼。如何將兩個單獨的數據添加到一條記錄中?

不過,我想給大家一個隨機的綽號誰張貼。

我做了一個簡單的Namemaker,但不知道如何與每個職位一起添加此數據。

(1)這是對的form_for代碼(:標題:內容)

<section class = 'form' id = 'main_form'> 
<p> 
<%= form_for @post do |f| %> 

<div class = 'form_input'> 
    <%= f.text_field :title, style: "width: 70%; color: black;", placeholder: 'Write your title' %> <br> 
    <%= f.text_area :content, rows: 10, style: "width: 70%; color:black;", placeholder: 'Write your content.' %> <br> 
</div> 

<div class = 'form_submit'> 
    <%= f.submit('Submit!') %> 
</div> 

<% end %> 
</p> 

(2)這是我的隨機Namemaker代碼

pre = ['gentle', 'funny', 'sleepy', 'horny', 'stupid'] 
    suff = ['crocodile', 'lion', '9gager', 'cat', 'dog'] 
    name = pre[rand(4)] + suff[rand(4)] 

我應該如何添加此'name'與每次來自form_for的數據? 我應該把它們放在哪裏?我應該在控制器中做出新的動作嗎?

總結成一排:你會怎麼做,如果你不得不放棄一個隨機名稱到每個人的崗位,讓後:標題/:內容與「的form_for」? 實際上,這就是我所要求達到這個

+0

你只需要顯示隨機暱稱或保存以供將來的顯示器? – Mayank

+0

嗯,我只是想對每一個職位顯示隨機名稱。如果這不需要保存,那麼我可以不用保存它們。 – zebralamy

回答

0

一種方法是添加自定義的名字張貼在控制器PARAMS創建行動。如果你使用強參數(你應該使用)。它看起來是這樣的:

def create 
    post = Post.new(post_params.merge(name: your_random_name)) 
    if post.save? 
    # ... 
end 

另一種方法是使用before_create回調:

class Post < ActiveRecord::Base 
    # ... 
    before_create :generate_name 

    def generate_name 
    self.name = your_random_name 
    end 
    # ... 
end 
相關問題