का उपयोग करके सेट नहीं हो रहा है जब मैं एक बच्चे की टिप्पणी के साथ एक नई जांच बनाने के लिए एक फॉर्म पोस्ट करता हूं (ऐप में, पूछताछ में कई टिप्पणियां हो सकती हैं), टिप्पणी नहीं बनाई जा रही है। उपस्थिति सत्यापन को हटाते समय यह काम करता है। तो इसे उस क्रम के साथ करना है जिसमें चीजें बनाई और सहेजी गई हैं। सत्यापन को संरक्षित कैसे करें और कोड को साफ रखें?एसोसिएशन आईडी accepts_nested_attributes_for और decent_exposure
मॉडल/inquiry.rb
class Inquiry < ActiveRecord::Base
has_many :comments
accepts_nested_attributes_for :comments
मॉडल/comment.rb
class Comment < ActiveRecord::Base
belongs_to :inquiry
belongs_to :user
validates_presence_of :user_id, :inquiry_id
नियंत्रकों/inquiry_controller (निम्नलिखित एक उदाहरण तो यह वास्तव में runable नहीं किया जा सकता है)। आरबी
expose(:inquiries)
expose(:inquiry)
def new
inquiry.comments.build :user => current_user
end
def create
# inquiry.save => false
# inquiry.valid? => false
# inquiry.errors => {:"comments.inquiry_id"=>["can't be blank"]}
end
विचारों/पूछताछ/new.html.haml
= simple_form_for inquiry do |f|
= f.simple_fields_for :comments do |c|
= c.hidden_field :user_id
= c.input :body, :label => 'Comment'
= f.button :submit
डेटाबेस स्कीमा
create_table "inquiries", :force => true do |t|
t.string "state"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "comments", :force => true do |t|
t.integer "inquiry_id"
t.integer "user_id"
t.text "body"
t.datetime "created_at"
t.datetime "updated_at"
end
कृपया इन तालिकाओं को बनाने वाले माइग्रेशन दिखाएं, या अगर माइग्रेशन के माध्यम से नहीं बनाया गया है तो कृपया डेटाबेस का वर्णन दिखाएं। –
अच्छी तरह से मैंने schema.rb का एक निकास जोड़ा – linojon