Linards Berzins
Joined
Activity
Thank you for looking into this Jack.
The problem still persists, the Portfolios page on mobile is just scaled down, not applying the Bootstrap responsive grid. As you can notice form the console, there are plenty of declarations that are dropped.
thanks
Thanks
Thank you Jacob,
its been sorted now.
Much appreciated!
Thanks Jack,
blog_id
is being added actually
blogs_channel.rb
class BlogsChannel < ApplicationCable::Channel
def subscribed
stream_from "blogs_#{params['blog_id']}_channel"
end
def unsubscribed
end
def send_comment(data)
current_user.comments.create!(content: data['comment'], blog_id: data['blog_id'])
end
end
blogs_controller.rb
def show
@blog = Blog.includes(:comments).friendly.find(params[:id])
@comment = Comment.new
end
show.html.erb
<div class="col-sm-8 blog-main">
<h2> <%= @blog.title %></h2>
<%= link_to 'Edit', edit_blog_path(@blog) if logged_in?(:site_admin) %>
<p><%= @blog.body %></p>
<%= render 'comments/comment_form' %>
<div id="comments" data-blog-id="<%= @blog_id %>">
<%= render @blog.comments %>
</div>
</div>
I can create the comment in terminal:
[2] pry(main)> Comment.create!(user_id: User.last.id, blog_id: Blog.last.id, content: "1234567")
User Load (0.4ms) SELECT "users".* FROM "users" ORDER BY "users"."id" DESC LIMIT $1 [["LIMIT", 1]]
Blog Load (0.2ms) SELECT "blogs".* FROM "blogs" ORDER BY "blogs"."id" DESC LIMIT $1 [["LIMIT", 1]]
(0.1ms) BEGIN
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
Blog Load (0.1ms) SELECT "blogs".* FROM "blogs" WHERE "blogs"."id" = $1 LIMIT $2 [["id", 20], ["LIMIT", 1]]
SQL (54.8ms) INSERT INTO "comments" ("content", "user_id", "blog_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["content", "1234567"], ["user_id", 1], ["blog_id", 20], ["created_at", "2018-02-02 05:45:37.058157"], ["updated_at", "2018-02-02 05:45:37.058157"]]
(9.1ms) COMMIT
Enqueued CommentBroadcastJob (Job ID: 22604b93-a864-4213-a348-0e0da6c69ee0) to Async(default) with arguments: #<GlobalID:0x007f93f1e3cfb0 @uri=#<URI::GID gid://web-portfolio/Comment/7>>
=> #<Comment:0x007f93f52996f0
id: 7,
content: "1234567",
user_id: 1,
blog_id: 20,
created_at: Fri, 02 Feb 2018 05:45:37 UTC +00:00,
updated_at: Fri, 02 Feb 2018 05:45:37 UTC +00:00>
[3] pry(main)> Comment Load (0.4ms) SELECT "comments".* FROM "comments" WHERE "comments"."id" = $1 LIMIT $2 [["id", 7], ["LIMIT", 1]]
Performing CommentBroadcastJob (Job ID: 22604b93-a864-4213-a348-0e0da6c69ee0) from Async(default) with arguments: #<GlobalID:0x007f93f0fd68b8 @uri=#<URI::GID gid://web-portfolio/Comment/7>>
Blog Load (0.3ms) SELECT "blogs".* FROM "blogs" WHERE "blogs"."id" = $1 LIMIT $2 [["id", 20], ["LIMIT", 1]]
Rendered comments/_comment.html.erb (1.7ms)
[ActionCable] Broadcasting to blogs_20_channel: {:comment=>"\t<div class=\"comment-card\">\n\t\t<div class=\"card\">\n\t\t\t<div class=\"card-block\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-md-1\">\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"col-md-11\">\n\t\t\t\t\t\t1234567\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>"}
Performed CommentBroadcastJob (Job ID: 22604b93-a864-4213-a348-0e0da6c69ee0) from Async(default) in 424.54ms
Hi,
trying to sort out this error for a while now, no luck.
I get this error above when adding a new comment for a blogpost. The blog is clearly there. Any insight would be much appreciated.
_comment.html.erb
<div class="comment-card">
<div class="card">
<div class="card-block">
<div class="row">
<div class="col-md-1">
</div>
<div class="col-md-11">
<%= comment.content %>
</div>
</div>
</div>
</div>
</div>
_comment_form.html.erb
<% unless current_user.is_a? GuestUser %>
<%= form_for @comment, url: '#' do |f| %>
<div class="form-group">
<%= f.label :content %>
<%= f.text_area :content, class: 'form-control' %>
</div>
<%= f.submit 'Post Comment', class: 'btn btn-primary' %>
<% end %>
<% end %>
comment.rb
class Comment < ApplicationRecord
belongs_to :user
belongs_to :blog
validates :content, presence: true, length: { minimum: 5, maximimum: 1000 }
after_create_commit { CommentBroadcastJob.perform_later(self) }
end
comment_controller.rb
class CommentsController < ApplicationController
def create
@comment = current_user.comments.build(comment_params)
end
private
def comment_params
params.require(:comment).permit(:content)
end
end
blogs_controller.rb
def show
@blog = Blog.includes(:comments).friendly.find(params[:id])
@comment = Comment.new
@page_title = @blog.title
@seo_keywords = @blog.body
end
Terminal output:
Could not execute command from ({"command"=>"message", "identifier"=>"{\"channel\":\"BlogsChannel\",\"blog_id\":\"\"}", "data"=>"{\"comment\":\"sdgergre\",\"blog_id\":\"\",\"action\":\"send_comment\"}"}) [ActiveRecord::RecordInvalid - Validation failed: Blog must exist]: