2017-04-09 21 views
0

Ok ...だから私は取得:タイトルと:コンテンツをform_forヘルパーと私のモデル、ポストに保存します。2つのデータを1つのレコードに追加するにはどうすればよいですか?

しかし、投稿したすべての人にランダムなニックネームを付けたいと思います。

私は単純な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)] 

です毎回form_forからのデータで '名前'? どこに貼るべきですか?私はコントローラーで新しい行動をとるべきですか?

要約:タイトル:/ form_forのコンテンツを取得した後、それぞれの投稿にランダムな名前を付ける必要がある場合はどうしますか? これは基本的に私が求めているものです

+0

あなただけのランダムなニックネームを表示したり、将来のディスプレイのためにそれらを保存する必要があります。

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

もう一つの方法は、before_createコールバックを使用することですか? – Mayank

+0

ええと、私はちょうど各投稿にランダムな名前を表示したいと思います。それが貯蓄を必要としない場合、私はそれらを保存せずに行くことができます。 – zebralamy

答えて

0

これを達成する方法の1つは、コントローラーの作成アクションでパラメーターをポストするカスタム名を追加することです。強力なパラメータを使用している場合(使用する必要があります)。それは次のようになります。

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

    def generate_name 
    self.name = your_random_name 
    end 
    # ... 
end 
関連する問題