Salut à tous!
J'ai décidé de remplacer une de mes pages par un partial où je devrai passer normalement les variables initialisées dans mon controller (2 arrays). Donc j'ai fait dans ma page comme ça:
Mon partial est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <h1>New Clinical Study</h1> <% form_for(@clinical_study) do |f| %> <%= render(:partial => 'clinical_study', :object => f, :locals => {:pack_studies => @pack_studies, :countries => @countries})%> <p> <%= submit_tag "Validate"%> </p> <%end%>
Et dans le copntroller:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <%= clinical_study.error_messages %> <p> <%= clinical_study.label :reference %><br /> <%= clinical_study.text_field :reference %> </p> <% pack_studies.each do |pack_study| %> <%= hidden_field_tag 'stab_study_ids[]', pack_study.stab_study_id %> <%end%> <div class="prd_select"> <%= select_tag("select_from", options_for_select(countries, clinical_study.countries.collect { |country| country.id}), {:multiple=>true, :size=>6})%> <a href="#" id="add">Add >></a> </div> <div class ="prd_select"> <%= select_tag("select_to", options_for_select([]), {:multiple=>true, :size=>6})%> <a href="#" id="remove"><< Remove</a> </div>
Quand je l'execute, j'obtiens ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def new @clinical_study = ClinicalStudy.new @pack_studies = PackStudy.find_all_by_stab_study_id(params[:stab_study_ids]) if params[:stab_study_ids] respond_to do |format| format.html #new.html.erb format.xml { render :xml => @clinical_study } end end
Bien sur je load mes 'countries avant dans le controler:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 undefined method `countries' for #<ActionView::Helpers::FormBuilder:0x4842e30> Extracted source (around line #12): 9: 10: <div class="prd_select"> 11: <%= select_tag("select_from", 12: options_for_select(countries, clinical_study.countries.collect { |country| country.id}), 13: {:multiple=>true, :size=>6})%> 14: <a href="#" id="add">Add >></a> 15: </div>
Avant l'implémentation de partial tout fonctionnait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 before_filter :load_countries private def load_countries @countries = Country.find(:all).collect { |country| [country.country_name, country.id] } end
Qu'est-ce qui n'est pas correct ici????Merci
Partager