Es wird davon ausgegangen, dass die folgenden Funktionen erstellt wurden.
--Posting-Funktion
Fügen Sie dem Modell, das Sie markieren möchten, Folgendes hinzu.
micropost.rb
acts_as_taggable
Fügen Sie den zu speichernden starken Parametern Folgendes hinzu. Ich werde auch für alle Fälle erstellen.
microposts_controller.rb
def create
@micropost = Micropost.new(micropost_params.merge(user_id: current_user.id))
if @micropost.save
redirect_to @micropost, flash:{success: "Gesendet"}
else
render :new
end
end
def show
@micropost = Micropost.find(params[:id])
end
private
def micropost_params
params.require(:micropost).permit(:content, :image, :tag_list)
end
Fügen Sie Ihrer Ansicht Folgendes hinzu: Erstellen Sie eine Eingabeansicht und eine Anzeigeansicht.
new.html.slim
= form_with model: micropost, local: true do |f|
.form-group
= f.label :tag
//,Getrennt durch
= f.text_field :tag_list, value: @micropost.tag_list.join(","), class: "form-control"
= f.submit "Senden", class: "btn btn-primary"
show.html.slim
table.table.table-hover
today
tr
th = Micropost.human_attribute_name(:tag)
td
- @micropost.tag_list.each do |tag|
= link_to tag, microposts_path(tag_name: tag), class: "micropost_tags__link"
microposts_controller.rb
def index
@q = Micropost.ransack(params[:q])
if params[:tag_name]
#Gibt Informationen für denselben ausgewählten Beitrag zurück
@microposts = Micropost.tagged_with(params[:tag_name]).page(params[:page])
elsif params[:q]
#Geben Sie eine Liste der Beiträge zurück
@microposts = @q.result(distinct: true).page(params[:page])
else
@microposts = Micropost.page(params[:page])
end
end
Wenn Sie einen Fehler machen, stellen Sie bitte eine Bearbeitungsanfrage oder einen Kommentar.
Recommended Posts