Skip to content

Instantly share code, notes, and snippets.

@workmad3
Last active August 29, 2015 14:00
Show Gist options
  • Save workmad3/11283154 to your computer and use it in GitHub Desktop.
Save workmad3/11283154 to your computer and use it in GitHub Desktop.
= form_for([@forum, @topic]) do |f|
- if @topic.errors.any?
%div{id: 'error_explanation'}
%h2
= pluralize(@topic.errors.count, "error")
prohibited this topic from being saved:
- for message in @topic.errors.full_messages
%li
= message
= f.label :name
%div{class: 'field'}
= f.text_field :name
= f.fields_for @post do |p|
= render :partial => "posts/form", :locals => { :f => p }
%div{class: 'actions'}
= f.submit
- if @topic.new_record?
asd
%h1
Edit topic
= @topic.name
= render 'form'
%h1 New topic
= render 'form'
= f.label :bodytext
%div{class: 'field'}
= f.text_area :bodytext
<h1>
Edit topic
mmmmmmmm
</h1>
<form accept-charset="UTF-8" action="/forums/ruby/topics/mmmmmmmm-932157ee-7b13-4af9-97af-7d99d668f73a" class="edit_topic" id="edit_topic_64" method="post"><div style="display:none"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="patch" /><input name="authenticity_token" type="hidden" value="UQL4ExZ0s+J/pZvwhXpJGK6ZxcCVuTVDsfbY+OCEkrY=" /></div> <label for="topic_name">Name</label>
<div class='field'>
<input id="topic_name" name="topic[name]" type="text" value="mmmmmmmm" />
</div>
<label for="topic_post_bodytext">Bodytext</label>
<div class='field'>
<textarea id="topic_post_bodytext" name="topic[post][bodytext]">
mmmmmmmmmmmmmmmmmmmmmmmmmmmmm</textarea>
</div>
<div class='actions'>
<input name="commit" type="submit" value="Update Topic" />
</div>
</form>
class TopicsController < ApplicationController
before_filter :find_forum
before_filter :authorize, only: [:new, :edit, :update]
before_action :set_topic, only: [:show, :edit, :update]
def index
redirect_to forum_path(@forum)
end
def show
@topic = Topic.friendly.find(set_topic)
@posts = @topic.posts
end
def new
@topic = Topic.new
@topic.posts.build
end
def edit
@topic.posts.build
@post = Post.find_by topic_id: @topic
logger.debug(@post)
end
def create
@topic = @forum.topics.build(topic_params)
@topic.author_id = current_user.id
logger.debug(topic_params)
respond_to do |format|
if @topic.save
format.html { redirect_to forum_topic_path(@forum, @topic), notice: 'Topic was successfully created.' }
else
format.html { render :new }
end
end
end
def update
@topic = set_topic
respond_to do |format|
if @topic.update(topic_params)
@topic.posts.build
format.html { redirect_to forum_topic_path(@forum, @topic), notice: 'Topic was successfully updated.' }
else
format.html { render :edit }
end
end
end
private
def find_forum
@forum = Forum.find(params[:forum_id])
end
def set_topic
@topic = Topic.find(params[:id])
end
# Allow only the white list
def topic_params
params.require(:topic).permit(:name, author_id: current_user.id , posts_attributes: [ :bodytext ])
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment