我需要编写一个返回模型的视图以及不属于模型的其他字段。
在控制器中我应该访问这些:
def create
@post = Post.new(params[:post])
@stuff = params[:stuff]
如何撰写视图?
答案 0 :(得分: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_for
而不是f.fields_for
。如果你使用f.fields_for
,它会将stuff_form字段作为post
对象参数的一部分
答案 1 :(得分: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_type
和field_type_tag
助手。前者用于属于模型的字段,而后者仅仅是params
中存在的其他字段。所以上面会给你一个像这样的参数:
{:post => {:title => 'the title', :body => 'the contents of the post'}, :stuff => 'contents of stuff field'}
答案 2 :(得分:0)
您可以添加不属于您的表单的字段标记,这些标记将添加到params哈希。
in 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 hash ...
stuff=>"what you want in stuff"