2010-08-28 4 views
0

Je suis nouveau sur ruby ​​on rails. Je suis à l'origine un programmeur PHP/mysql. Je n'arrive pas à comprendre comment vous connectez les messages à l'utilisateur et les affiche (par exemple, un message est créé avec l'ID utilisateur, puis l'ID utilisateur est interrogé pour obtenir son nom.)Ruby on Rails Devise user

J'utilise concevoir pour l'authentification.

Contrôleur

def create 
    poll = current_user.polls.build(params[:poll]) 
    poll.onefourty = poll.onefourty[0..140] 
    poll.created_at = Time.now 
    poll.save! 

    if @poll.save 
    redirect_to root_path 
    else 
    redirect_to root_path 
    end 

end 

Formulaire

<%= form_for Poll.new, :html => { :multipart => true } do |f| %> 

<div id="form"> 
    <div class="text_input" style="height: 65px;"><%= f.text_area :onefourty %><div class="label" style="height: 63px; line-height: 63px;">Question</div></div> 
    <div class="text_input"><%= f.text_field :option1 %><div class="label">Option One</div></div> 
    <div class="text_input"><%= f.text_field :option2 %><div class="label">Option Two</div></div> 
    <div class="text_input"><%= f.text_field :option3 %><div class="label">Option Three</div></div> 
    <div class="text_input"><%= f.text_field :option4 %><div class="label">Option Four</div></div> 

    <div id="submit"> 
<div id="left"> 
</div> 
<%= f.submit :id => "next", :value => "" %> 
    </div> 
</div> 
<% end %> 

Migration:

create_table "polls", :force => true do |t| 
    t.text  "onefourty" 
    t.string "option1" 
    t.string "option2" 
    t.string "option3" 
    t.string "option4" 
    t.string "option5" 
    t.string "option6" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.string "photo1_file_name" 
    t.string "photo1_content_type" 
    t.integer "photo1_file_size" 
    t.datetime "photo1_updated_at" 
    t.string "photo2_file_name" 
    t.string "photo2_content_type" 
    t.integer "photo2_file_size" 
    t.datetime "photo2_updated_at" 
    t.string "photo3_file_name" 
    t.string "photo3_content_type" 
    t.integer "photo3_file_size" 
    t.datetime "photo3_updated_at" 
    t.string "photo4_file_name" 
    t.string "photo4_content_type" 
    t.integer "photo4_file_size" 
    t.datetime "photo4_updated_at" 
    end 

create_table "users", :force => true do |t| 
    t.string "email",        :default => "", :null => false 
    t.string "encrypted_password", :limit => 128, :default => "", :null => false 
    t.string "password_salt",      :default => "", :null => false 
    t.string "confirmation_token" 
    t.datetime "confirmed_at" 
    t.datetime "confirmation_sent_at" 
    t.string "reset_password_token" 
    t.string "remember_token" 
    t.datetime "remember_created_at" 
    t.integer "sign_in_count",      :default => 0 
    t.datetime "current_sign_in_at" 
    t.datetime "last_sign_in_at" 
    t.string "current_sign_in_ip" 
    t.string "last_sign_in_ip" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.string "username" 
    t.string "firstname" 
    t.string "lastname" 
    t.string "avatar_file_name" 
    t.string "avatar_content_type" 
    t.integer "avatar_file_size" 
    t.datetime "avatar_updated_at" 
    end 

Répondre

1

En supposant que vous avez la structure suivante:

# app/model/user.rb 
class User < ActiveRecord::Base 
    has_many :polls 
    #... 
end 

# app/model/poll.rb 
class Poll < ActiveRecord::Base 
    belongs_to :user 
    #... 
end 

Et si vous créez des sondages, qu'il semble que vous êtes probablement, puis dans une vue avec succès - vous pouvez interroger et afficher les sondages de l'utilisateur actuel avec:

# app/views/polls/index.html.erb 

<%- if current_user -%> 
    <%- current_user.polls.each do |poll| -%> 
    <h2><%= poll.onefourty %></h2> 
    <ul> 
     <li><%= poll.option1 %></li> 
     <li><%= poll.option2 %></li> 
     <li><%= poll.option3 %></li> 
     <li><%= poll.option4 %></li> 
     <li><%= poll.option5 %></li> 
     <li><%= poll.option6 %></li> 
    </ul> 
    <%- end -%> 
<%- else -%> 
    <em>Not logged in</em> 
<%- end -%> 
+0

qui ne fonctionne pas. Il prétend que j'ai un objet nul. – morcutt

+0

En principe, si 'current_user' est nul, alors vous n'êtes pas connecté. J'ai mis à jour le code de la vue ci-dessus pour refléter cela. – theTRON

+0

l'a fonctionné mais ne peut toujours pas comprendre comment interroger l'information d'utilisateurs quand j'affiche l'information. Merci pour votre aide! – morcutt