2014-08-27 37 views
2

我需要編寫一個視圖,該視圖返回模型以及不屬於模型的其他字段。如何提交模型字段以外的字段

在控制器我應該訪問這些像:

def create 
    @post = Post.new(params[:post]) 
    @stuff = params[:stuff] 

怎麼能寫我的看法?

回答

2

可以使用fields_for幫手

form_for @post do |f| 
    f.text_field :title 
    fields_for :stuff do |stuff_form| 
     stuff_form.text_field :name  
    end 
end 

記住,它根本不fields_forf.fields_for。如果你使用的是f.fields_for,它會給你的東西做一個填充字段post object params

+0

完善,這個工作我需要的方式。 – Beetlejuice 2014-08-27 18:03:24

1

使用form helpers,即:

<%= form_for @post do |f| %> 
    <%= f.text_field :title %> 
    <%= f.text_area :body, size: "60x12" %> 
    <%= text_field_tag :stuff %> 
    <%= f.submit "Create" %> 
<% end %> 

對於大多數類型的輸入域,有兩個f.field_typefield_type_tag幫手。前者屬於模型的一部分,而後者只是params中的其他字段。所以上面會給你params散列,像這樣:

{:post => {:title => 'the title', :body => 'the contents of the post'}, :stuff => 'contents of stuff field'} 
0

你可以添加不屬於你的表單的字段標籤,它將添加到params散列表中。

在HAML ...

= text_field_tag :stuff, "what you want in stuff" 
= hidden_field_tag :stuff, "or if you wanted a hidden field to show stuff" 

將導致PARAMS散...

stuff=>"what you want in stuff"