Create a Blog post


I want my admin user to create news posts that are the viewed on the public News page. I was thinking that this could be achieved by having the admin user create "Blogs", but i only want the admin user to create these. Any ideas on how this can be achieved?

Without the slightest idea about any of your code it is impossible for us to answer this other than to suggest that you only make the page for creating blogs visible to admins and, when a request is made to create one, check that the current user is an admin.


hi, this is what i have now done, dont know why i didnt think if this earlier. However i now have the following issue.

im my private_pages controller i have

def news

    @post = Post.find(params[:id])

    respond_to do |format|       format.html # show.html.erb       format.json { render json: @post }     end   end

in my private_pages/news view i have

<body id="contact"> <h1 class="news">Bafo News</h1>

<font size="3" face="arial" color="white">

<table>   <tr>     <th>Title</th>     <th>Body</th>     <th></th>     <th></th>     <th></th>   </tr>

<% @posts.each do |post| %>   <tr>     <td><%= post.title %></td>     <td><%= post.body %></td>   </tr> <% end %> </table>

<br />


When i try and view the private_pages/news page i get this error message

ActiveRecord::RecordNotFound in PrivatePagesController#news

Couldn't find Post without an ID

Any ideas?

The clue is often in the error message, it says it needs an id to find a post. Assuming that the line it is complaining about is @post = Post.find(params[:id]) which you should be able to verify from the stack trace then that suggests that params[:id] is not set. Have a look in log/development.log and it will tell you what parameters are being passed in. Also have a look at the Rails Guide on Debugging and it will provide a number of techniques for debugging your code. In particular look at using ruby-debug to break into your code to inspect data and follow the flow. In this case if you cannot see the problem you could break in before the offending line and see what is in params.


Not related to your stated problem but --

<font size="3" face="arial" color="white">

Please, in the name of all that's holy, lose the font tags and learn to write proper markup and CSS.

It *is* the 21st century, y'know.

apologies for the ancient font tags, but every one has to start somewhere

Uh, "start" by using markup that was deprecated 13 years ago? Why?

I'm guessing you're not using a 13-year-old version of Ruby, or the original release of Rails, and you're almost certainly not looking at web pages in Mosaic or Netscape 1.0, so that logic escapes me...

I can sympathise with Richard here, when one is getting started the easiest thing to do is start by copying examples found in books and on the web. There are very many examples of inline styling still about and if one is not familiar with css then the easiest thing to do is just to copy the example initially. If one is just experimenting with code there is no point going to the efforts of converting it to use css when it may just be thrown away anyway.


I agree with Colin. He is starting to code now, he should focus in one or two things at a time.

But Richard, CSS is *very* good and you should learn how to use it. :slight_smile:

This is the RailsGuides page about debugging:

Good luck!