Je travaille sur une application Rails où une classe d'utilisateurs nommée (les soumissionnaires) peut se connecter et une fois qu'ils sont connectés, ils créent des vidéos. Mon contrôleur de vidéos est ici:Objets liés à leur créateur Question
class VideosController < ApplicationController
def index
@videos = Video.find :all
end
def new
@submitter = current_submitter
@video = @submitter.videos.build
end
def create
@submitter = current_submitter
@video = @submitter.videos.build(params[:video])
if @video.save
@video.convert
flash[:notice] = 'Video has been uploaded'
redirect_to :action => 'index'
else
render :action => 'new'
end
end
def show
@video = Video.find(params[:id])
end
def destroy
@video = Video.find(params[:id])
@video.destroy
flash[:notice] = "Successfully deleted the video."
redirect_to root_url
end
def update_date
@video = Video.find(params[:id])
@video.update_attributes(params[:video])
flash[:notice] = "Successfully added a launch date!"
redirect_to @video
end
end
Comme vous pouvez le voir, je suis en train de construire le contrôleur de sorte que lorsqu'une vidéo est créée, il est créé comme appartenant à l'auteur qui téléchargent la vidéo (via la vidéo nouvelle vue). J'utilise un système d'authentification avec une méthode current_submitter écrite dans le contrôleur d'application.
Maintenant, il me permet de télécharger une vidéo bien lorsque je suis connecté en tant que demandeur. Le problème pour moi est de savoir comment afficher les informations à mon avis. Si je veux afficher des colonnes avec des informations sur la vidéo et d'autres avec des informations sur l'émetteur qui a téléchargé la vidéo, comment puis-je faire cela à partir du contrôleur (action d'index), dans la vue d'index. Mon point de vue actuel qui ne fonctionne pas en dessous:
<% title "Films Submitted" %>
<table>
<tr>
<th>Title</th>
<th>Film Type</th>
<th>Premiere</th>
<th>Company</th>
<th>Name</th>
</tr>
<% for video in @videos do %>
<tr>
<td><%= link_to video.title, video %></td>
<td><%= video.film_type %></td>
<% if video.premiere == "true" %>
<td>Premiere</td>
<% else %>
<td><%= %></td>
<% end %>
<td><%= video.submitter.company %></td>
<td><%= video.submitter.name %></td>
<td><%= link_to "Delete", video, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<br><br>
<%= link_to "Upload a Video", new_video_path %>
Toutes les suggestions ou conseils des rails développeurs seraient beaucoup apprécié ... Je suis nouveau et essayer d'apprendre.
Modèle vidéo:
class Video < ActiveRecord::Base
belongs_to :submitter
has_attachment :content_type => :video,
:storage => :file_system,
:max_size => 50.megabytes
end
Déposant Modèle:
class Submitter < ActiveRecord::Base
acts_as_authentic
has_many :videos
end
Schéma:
create_table "videos", :force => true do |t|
t.string "title"
t.text "description"
t.string "state"
t.datetime "created_at"
t.datetime "updated_at"
t.string "content_type"
t.integer "size"
t.string "filename"
t.string "film_type"
t.boolean "premiere", :default => false
t.date "preferred_date"
t.text "reason"
t.integer "submitter_id"
t.date "actual_date"
end
create_table "submitters", :force => true do |t|
t.string "name"
t.string "company"
t.string "email"
t.string "username"
t.string "crypted_password"
t.string "password_salt"
t.string "persistence_token"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "video_id"
end
Lorsque vous dites que cela ne fonctionne pas, que se passe-t-il? Avez-vous un message d'erreur? – mikej
Désolé, mon mauvais ... oui je reçois ce qui suit: undefined la méthode 'company 'pour nil: NilClass –