Forum: Rails France Problème avec clé étrangère

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ali F. (Guest)
on 2008-12-02 15:40
Bonjour

J'ai un model "User". L'utilisateur a une clé étrangère(state_id) qui
reference le model "state".

Le problème, est le suivant: Lorsque que j'ajoute un utilisateur en
spécifiant son "state_id", alors celui-ci est null dans la base de
données.

Dans le formulaire d'ajout d'utilisateur, j'ai le code suivant:

<%= f.select(:state_id, State.find(:all).map {|c|
[c.name,c.id]},{:prompt => "Select a canton"}, {:onchange =>
"#{remote_function(:url  => {:action =>
"update_municipals"},=>"'name='+value")}"}) %>

Qu'est-ce que je dois faire, pour que l'id de state soit enregistré
comme voulu?

Merci d'avance
Cyril M. (Guest)
on 2008-12-02 15:47
(Received via mailing list)
Ali Fakheri wrote:
>
> <%= f.select(:state_id, State.find(:all).map {|c|
> [c.name,c.id]},{:prompt => "Select a canton"}, {:onchange =>
> "#{remote_function(:url  => {:action =>
> "update_municipals"},=>"'name='+value")}"}) %>
>
> Qu'est-ce que je dois faire, pour que l'id de state soit enregistré
> comme voulu?
>
Ça dépend de ton code...

--
Cyril M.
http://blog.shingara.fr
Ali F. (Guest)
on 2008-12-02 16:02
> Ça dépend de ton code...


#users_controller
  def update_municipals

    state = State.find(params[:name])
    @municipals = state.municipals
    a = 0

    render :update do |page|
      page.replace_html 'municipalfd', :partial => 'cantcoll', :object
=> @municipals
    end
  end
-----------------------------------------------
#new.html.erb (tjr pour users)
<%= error_messages_for :user %>
<% form_for :user, :url => users_path do |f| -%>
<p><label for="login">Login</label><br/>
<%= f.text_field :login %></p>

<p><label for="email">Email</label><br/>
<%= f.text_field :email %></p>

<p><label for="password">Password</label><br/>
<%= f.password_field :password %></p>

<p><label for="password_confirmation">Confirm Password</label><br/>
<%= f.password_field :password_confirmation %></p>

  <p>
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.label :surname %><br />
    <%= f.text_field :surname %>
  </p>
  <p>
    <%= f.label :birthday %><br />
    <%= f.date_select :birthday, :start_year => 1900, :end_year =>
2100%>
  </p>
  <p>
    <%= f.label :state %><br />
    <%= f.select(:state_id, State.find(:all).map {|c| [c.name,
c.id]},{:prompt => "Select a state"}, {:onchange =>
"#{remote_function(:url  => {:action => "update_municipals"},
                                                       :with =>
"'name='+value")}"}) %>


  </p>
    <div id="municipalfd"><%= render :partial => 'cantcoll', :object =>
@municipals %></div>
  <p>
    Select the role of the user:
    <%= f.select(:role, %w{ voter admin}) %>
  </p>


  <p>
    <%= f.label :has_voted %><br />
    <%= f.check_box :has_voted %>
  </p>

<p><%= submit_tag 'Sign up' %></p>
<% end -%>
-----------------------------------------------------------------
#_cantcoll.html.erb
<% if @municipals == nil %>
<%= select(nil,:municipal, "select a canton first") %>
<% else %>
<%= collection_select(:user,:municipal, @municipals, :municipal_name,
:municipal_name) %>
<% end %>

<br>
------------------------------------------------------------
This topic is locked and can not be replied to.