两种形式,两种模式,一种视图ROR

时间:2014-09-13 15:43:22

标签: ruby-on-rails ruby forms ruby-on-rails-4 models

我正在尝试在同一视图中为两个不同的模型制作两个表单。

我有一个名为category的模型和一个名为post的模型。 我试图在同一视图中为类别创建一个表单,我有一个帖子的表单。 帖子的表单工作正常,但当我尝试添加类别的表单时,我收到此错误: Category :: ActiveRecord_Relation的未定义方法`model_name':Class

category.rb - model

  

has_many:帖子

post.rb - model

  

has_many:categories

posts_controller

def index
@posts = new.Post
@categories = new.Category
end

def create
@posts = Post.create(post_params)
@posts.save
redirect_to :back
end

def create_cate
@categories = Categroy.create(categories_params)
@categroies.save
redirect_to :back
end

发布视图 - index.html.erb

<%= form_for(@posts) do |f| %>
<%= f.text_field :title %>
<%= f.text_area :content %>
<%= f.submit %>
<% end %>

<%= form_for(@categories) do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>

的routes.rb

resources :posts
resources :categories
root 'posts#index'

我试过搜索if,但我只能找到两种模型的解决方案,一种形式。

提前致谢。 : - )

1 个答案:

答案 0 :(得分:3)

因为你在索引动作中说出它:

def index
  @post = Post.new
  @category = Category.new
end

在您看来:

<%= form_for(@post) do |f| %>
  <%= f.text_field :title %>
  <%= f.text_area :content %>
  <%= f.submit %>
<% end %>

<%= form_for(@category) do |f| %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>