Ruby on Rails
Monday, March 5, 2018
the top example looks really clear to me.
On Sunday, 4 March 2018 15:12:23 UTC, David McDonald wrote:
-- I can see immediately what it is doing and why.
there is almost no duplication and it is doing 'controller-type' work.
what don't you like about it?
On Sunday, 4 March 2018 15:12:23 UTC, David McDonald wrote:
I was struck recently by how simplified the code is that @dhh was showing off in his youtube videos recently. I'm trying to learn from it and get my code refactored properly. The questions I'm finding are more of how his code lines up to what the rails generator creates. Below is an example of both of a #create action.I realize that I probably shouldn't be comparing these two as they're made for different purposes, but from viewing both I can't help but see that one is much more code.Rails Generated Controller #create
def create@post = Post.new(post_params)respond_to do |format|if @post.saveformat.html { redirect_to @post, notice: 'Post was successfully created.' }format.json { render :show, status: :created, location: @post }elseformat.html { render :new }format.json { render json: @post.errors, status: :unprocessable_entity }endendend
DHH code from (MessagesController#create)def create
@recording = @bucket.record new_message, parent: @parent_recording, status: status_param,
subscribers: find_subscribers, category: find_category
if guided_setup?
complete_guided_setup
else
respond_to do |format|
format.any(:html, :js) { redirect_to edit_subscriptions_or_guided_recordable_url(@recording) }
format.json { render :show, status: :created }
end
end
end
By looking at the two samples, I think the part I really feel I can improve upon is perhaps the "respond_to" blocks. I began thinking through trimming down my code, but quickly noticed that there isn't a "format.html { render :new }" or a "if @post.save" example for this instance. Anyone have thoughts on this? Maybe if he were to have shown a block that more closely represented the PostsController#Create, I would've seen something closer to the generated code.
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/920d5f49-2545-47e7-aafd-ead503330f09%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment