Show tags in microposts
This commit is contained in:
parent
ad03410a65
commit
6358e2a61e
|
@ -23,6 +23,10 @@ form#micropost_form {
|
|||
}
|
||||
}
|
||||
|
||||
ul#microposts {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.micropost {
|
||||
margin: 1em auto;
|
||||
padding: .5em;
|
||||
|
@ -33,4 +37,16 @@ form#micropost_form {
|
|||
text-align: right;
|
||||
font-size: .8em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ul.micropost-tags {
|
||||
list-style-type: none;
|
||||
display: inline;
|
||||
li {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ class MicropostsController < ApplicationController
|
|||
def create
|
||||
micropost = Micropost.new(micropost_params)
|
||||
micropost.user = helpers.current_user
|
||||
micropost.add_tags(params[:tags])
|
||||
if micropost.save
|
||||
redirect_to micropost, notice: t(".created")
|
||||
else
|
||||
|
@ -46,6 +47,10 @@ class MicropostsController < ApplicationController
|
|||
|
||||
private
|
||||
|
||||
def parse_tags(tags)
|
||||
tags.split
|
||||
end
|
||||
|
||||
def micropost_params
|
||||
params.require(:micropost).permit(
|
||||
:content,
|
||||
|
|
|
@ -3,5 +3,7 @@
|
|||
|
||||
<%= f.rich_text_area :content %>
|
||||
|
||||
<%= text_field_tag :tags %>
|
||||
|
||||
<%= f.submit button_text %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
<div class="micropost">
|
||||
<%= micropost.content %>
|
||||
<% unless micropost.tags.empty? %>
|
||||
<h5>Tags:</h5>
|
||||
<ul id="micropost-<%= micropost.id %>-tags" class="micropost-tags">
|
||||
<% micropost.tags.each do |tag| %>
|
||||
<li><%= tag.name %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
<div class="created_at">
|
||||
<%= link_to "Edit", edit_micropost_path(micropost) if micropost.user == current_user %>
|
||||
<%= link_to micropost.created_at.strftime("%Y-%m-%d %H:%M"), micropost %>
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
require "test_helper"
|
||||
|
||||
class TagMicropostsTest < ActionDispatch::IntegrationTest
|
||||
test "tags can be added to microposts" do
|
||||
@user = users(:trevor)
|
||||
sign_in(@user)
|
||||
get new_micropost_path
|
||||
assert_response :success
|
||||
post microposts_path, params: {
|
||||
micropost: {
|
||||
content: "An interesting post",
|
||||
},
|
||||
tags: "foo bar baz",
|
||||
}
|
||||
assert_response :redirect
|
||||
follow_redirect!
|
||||
assert_includes response.body, "foo"
|
||||
assert_includes response.body, "bar"
|
||||
assert_includes response.body, "baz"
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue