поле collection_select вложенных форм рельсы 3.1 - PullRequest
0 голосов
/ 12 января 2012

у меня 3 модели первые user.rb:

class User
 has_many :boards, dependent: :destroy
 has_many :posts, dependent: :destroy, :autosave => true
 accepts_nested_attributes_for :boards
 accepts_nested_attributes_for :posts
end

Вторая модель это board.rb

class Board
 has_many :posts, :dependent => :destroy , :autosave => true
 accepts_nested_attributes_for :posts
 belongs_to :user
end

Третья модель ее post.rb

class Post
 belongs_to :user
 belongs_to :board
end

Я хочу создать новое сообщение с родительской доской в моем действии, новое из posts_controllers У меня есть:

@post = Post.new
respond_to do |format|
  format.html # new.html.erb
  format.json { render json: @post }
end

Я создаю новую доску с:

def create
  @board = current_user.boards.new(params[:board])
   respond_to do |format|
    if @board.save
      format.html { redirect_to @board, notice: 'Board was successfully created.' }
      format.json { render json: @board, status: :created, location: @board }
    else
      format.html { render action: "new" }
      format.json { render json: @board.errors, status: :unprocessable_entity }
    end
  end
end

Частично _form.thml.erb У меня есть это:

<%= form_for(@post, :html => {:multipart => true}) do |f| %>
<%= f.label :content %><br />
<%= f.text_area :content %>
<%= f.collection_select :board_id, Board.all, :id, :name%>
<%= f.submit %>
<% end %>

Проблема в том, что в моем поле выбора появляются все доски . Я хочу только показать и выбрать доски, принадлежащие текущему пользователю.

Примечание Я использую монгоид.

1 Ответ

0 голосов
/ 12 января 2012

Ваша модель может быть проще.

class User
 has_many :boards, dependent: :destroy
 accepts_nested_attributes_for :boards
end

class Board
 has_many :posts, :dependent => :destroy , :autosave => true
 belongs_to :user
 accepts_nested_attributes_for :posts
end

class Post
 belongs_to :board
end

<%= form_for(@post, :html => {:multipart => true}) do |f| %>
<%= f.label :content %><br />
<%= f.text_area :content %>
<%= f.collection_select :board_id, Board.find_by_user_id(current_user.id), :id, :name%>
<%= f.submit %>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...