2017-04-09 21 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 
相关问题