Я создаю форму для добавления предложений в предложения. Однако, хотя я могу успешно отправить форму, и rails возвращает флеш-сообщение, что предложение было отправлено успешно, значение для сообщения о предположении равно nil.Rails форма с вложенным ресурсом генерирует нулевой вывод
Я рассмотрел различные другие сообщения о формах с вложенными ресурсами, но ничто не помогло мне разрешить проблему.
Это то, что я делаю:
1. Перейдите на локальный: 3000/suggestion_boxes/1/предложения/новые
2. Форма приложения/мнения/предложения/new.html отображается .haml:
%header
%h1.title
= @suggestion_box.name + " Suggestion Box"
.main
= form_for ([@suggestion_box, @suggestion_box.suggestions.build]) do |f|
- if @suggestion.errors.any?
#error_explanation
%ul
- @suggestion.errors.messages.values.each do |msg|
= msg.to_sentence
.field
%br/
= f.text_area :suggestion_message, type:"text", placeholder:"Drop a note in our suggestion box...", :rows => 6, :cols => 30
.actions
= f.submit "Continue"
3. Я введите текст в поле: suggestion_message и нажмите кнопку. Затем отображается приложение/просмотров/suggestion_boxes/show.html.haml:
%header
%h1.title
= @suggestion_box.name + " Suggestion Box"
%p#notice= notice
%p
= link_to "Post a new suggestion", new_suggestion_box_suggestion_path(@suggestion_box)
%table
%tr
%th Message
- @suggestions.each do |suggestion|
%tr
%td
= suggestion.suggestion_message
Здесь, однако, в то время как отображается флэш-сообщение о том, что предложение было успешно представлено в таблицах suggestion_message пустым.
Это то, что я получаю, когда я запрос к базе данных для предложений по этому ящик для предложений:
Suggestion Load (1.1ms) SELECT "suggestions".* FROM "suggestions" WHERE
"suggestions"."suggestion_box_id" = 1 => [#<Suggestion id: 1, suggestion_message: nil, created_at: "2013-06-04 15:49:58", updated_at: "2013-06-04 15:49:58", anonymous_suggestion: nil, member_id: nil, suggestion_box_id: 1>,
#]
Любые идеи, почему сообщение предложение равно нулю, даже если он появляется его сохраняется?
Большое спасибо за помощь!
Фрагменты из файлов, которые могут потребоваться для ответа на этот вопрос. Я включены только то, что я думал, что было бы соответствующие части
SuggestionBox Модель:
class SuggestionBox < ActiveRecord::Base
attr_accessible :name , :suggestions_attributes
belongs_to :organization
has_many :suggestions, :dependent => :destroy
accepts_nested_attributes_for :suggestions
end
Предложение Модель:
class Suggestion < ActiveRecord::Base
attr_accessible :suggestion_message, :anonymous_suggestion
belongs_to :suggestion_box
end
routes.rb
SuggestionBoxApp::Application.routes.draw do
resources :invites, :organizations, :users, :sessions, :password_resets
resources :suggestion_boxes do
resources :suggestions
end
end
Предложения Контроллер
class SuggestionsController < ApplicationController
def new
@suggestion_box = SuggestionBox.find(params[:suggestion_box_id])
@suggestion = @suggestion_box.suggestions.build
flash[:error] = "Sorry, no suggestion box found with the id #{:id}." and return unless @suggestion_box
respond_to do |format|
format.html # new.html.erb
format.json { render json: @suggestion }
end
end
def create
@suggestion_box = SuggestionBox.find(params[:suggestion_box_id])
@suggestion = @suggestion_box.suggestions.new
respond_to do |format|
if @suggestion.save
format.html { redirect_to suggestion_box_path(@suggestion_box), notice: 'Suggestion was successfully submitted.' }
format.json { render json: @suggestion, status: :created }
else
format.html { render action: "new" }
format.json { render json: @suggestion.errors, status: :unprocessable_entity }
end
end
end
end
SuggestionBox Контроллер
class SuggestionBoxesController < ApplicationController
def show
@suggestion_box = SuggestionBox.find(params[:id])
@suggestions = @suggestion_box.suggestions.all
respond_to do |format|
format.html # show.html.erb
format.json { render json: @suggestions }
end
end
end
Спасибо за указание, что мне не нужны accepts_nested_attributes. Число рейнольдса использование вложенной формы, мне показалось бы иметь смысл вставлять предложения в ящики предложений, чтобы можно было легко генерировать семантически значимые URL-адреса, а также предотвращать необходимость выбора окна предложений при добавлении нового выбора , Однако, если это не веские причины или наличие вложенных ресурсов в целом плох, я изучу подход к этому без наличия вложенных ресурсов. – andersr