मेरे पास उपयोगकर्ता और एक कार्य के बीच has_and_belongs_to_many सहयोग है I
मैं एक उपयोगकर्ता को एक कार्य में शामिल करने के लिए चाहता था और इस प्रकार उपयोगकर्ता नियंत्रक में एक कार्रवाई की है:
def joinTask @user = current_user @task = Task.find (params [: आईडी]) @users_tasks = @ टास्क @ task.save उत्तर_ करें | प्रारूप | यदि @ task.update_attributes (params [: कार्य]) format.html {redirect_to [task.column.board.project, @ task.column.board], नोटिस: 'आप सफलतापूर्वक कार्य में शामिल हो गए हैं'} format.json {head : No_content} else format.html {render action: "edit"} format.json {render json: @ task.errors, स्थिति:: unprocessable_entity} अंत अंत समाप्ति यह देखने के लिए कि क्या ठीक से काम कर रहा है मैं एक विशिष्ट कार्य से संबंधित सभी उपयोगकर्ताओं को सूचीबद्ध करना चाहता हूं। इसके लिए मैंने उपयोगकर्ता नियंत्रक को एक कार्यवाही की, जहां मैं सभी उपयोगकर्ताओं को एक कार्य के लिए प्राप्त करने की कोशिश कर रहा हूं:
def showTeam @users = Task.find (params [: id])। प्रयोक्ता answer_to do | format | Format.html # showTeam.html.erb format.json {render json: @users} एंड एंड लेकिन मुझे हमेशा त्रुटि मिलती है
अपरिभाषित विधि शून्य के लिए `नाम ': NilClass जब उपयोगकर्ता नाम पाने के लिए HTML पृष्ठ को प्रस्तुत करने का प्रयास करता है ...
क्या मैं गलत ट्रैक पर हूं?
मॉडल:
वर्ग कार्य & lt; ActiveRecord :: बेस attr_accessible: वर्णन,: शीर्षक,: वजन,: कहानी_आईडी,: column_id,: board_id belongs_to: story,: foreign_key = & gt; "Story_id" belongs_to: स्तंभ,: विदेशी_की = & gt; "Column_id" has_and_belongs_to_many: प्रयोक्ता एंड क्लास उपयोगकर्ता एंड लेफ्टिनेंट; ActiveRecord :: बेस attr_accessible: नाम,: लॉगिन,: ईमेल, पासवर्ड: पासवर्ड password_confirmation स्थिति status_and_belongs_to_many: projects has_and_belongs_to_many: कार्य समाप्त मैं क्रियाओं को कॉल करता हूं: < पूर्व> & lt;% = link_to 'कार्य में शामिल हों', joinTask_path (कार्य),: class = & gt; 'बीटीएन'% & gt; & Lt;% = link_to 'टीम दिखाएं', showTeam_path (कार्य),: class = & gt; 'बीटीएन'% & gt; जड़ें निम्नानुसार परिभाषित हैं:
मैच "joinTask_user /: id" = & gt; "उपयोगकर्ता # joinTask",: as = & gt; : शामिल टाट मैच "showTeam_task /: id" = & gt; "कार्य # शोटेम",: जैसा = & gt; : ShowTeam और अंत में showTeam.html। एआरबी प्रदान किया गया है और वहां मैं उपयोगकर्ता नाम का उपयोग करना चाहता हूं:
& lt; p & gt; & Lt; p & gt; का नाम: & lt; / p & gt; & Lt;% = @ user.name% & gt; & Lt; / p & gt;
ऐसा लगता है कि आप कभी भी अपने उपयोगकर्ताओं और कार्यों के बीच संबंध नहीं बनाते हैं। / P>
@user = current_user @task = Task.find (params [: id]) @users_tasks = @task @ task.save मुझे लगता है कि आप क्या इसका मतलब है <पूर्व> @ टास्क = टास्क.फिंड (पाराम [: आईडी]) @ टास्क.युसेर & lt; & lt; Current_user @ task.save आपको update_attributes का उपयोग नहीं करना चाहिए। ] इसके अलावा, आपके शो दृश्य में, आप @ यूज़र लोड कर रहे हैं, लेकिन आप @ user.name को कॉल कर रहे हैं। यदि आप सभी उपयोगकर्ता नाम दिखाना चाहते हैं, तो यह
& lt;% @ की लाइनों के साथ अधिक होनी चाहिए। & Gt%; & Lt; p & gt; & Lt; p & gt; का नाम: & lt; / p & gt; & Lt;% = user.name% & gt; & Lt; / p & gt; & Lt;% end% & gt; आप अपने कार्य को खोजने और उस पर task.users कॉल करके रेल कंसोल में कोई संबंध है या नहीं। किसी भी स्थिति में, यदि आप केवल इस प्रोजेक्ट को शुरू कर रहे हैं, तो मैं अपने कार्यों को पढ़ने का सुझाव देता हूं क्योंकि यह उनके लिए विशिष्ट उपयोग मामला है।
Comments
Post a Comment