2014-09-13 3 views
0

Я пытаюсь сделать две формы для двух разных моделей в одном представлении.Две формы, две модели, один вид ROR

У меня есть модель с названием категории и модель с именем post. Я пытаюсь сделать форму для категорий в одном представлении У меня есть форма для сообщений. Форма для сообщений работает отлично, но когда я пытаюсь добавить форму для категорий я получаю эту ошибку: неопределенный метод `MODEL_NAME» для категории :: ActiveRecord_Relation: Класс

category.rb - модель

has_many :posts

post.rb - модель

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' 

Я пытался искать после того, как если, но я могу только найти решения для двух моделей, одной формы.

Заранее спасибо. :-)

ответ

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 %> 
+0

Спасибо много. :-) – niiicolai

+1

Этот подход неверен в соответствии с правилом Санди (http://robots.thoughtbot.com/sandi-metz-rules-for-developers) - * Контроллеры могут создавать только один объект. Поэтому представления могут знать только об одной переменной экземпляра, и представления должны отправлять сообщения только этому объекту. * –

+0

звучит интересно. Я прочитаю об этом. Спасибо :) – niiicolai

Смежные вопросы