Merge error in collection_select when trying to access another model

Hi
I am a newbie in rails. My question may seems too simple to be
discussed here, but the only place to get my answer from experts is
here. I searched in this group, but didn't find something like my
problem, although there were some problems about merge error.
I have two models here, links, and subjects. every link must have a
subject. So a subject has_many links and links belongs_to a subject.
This is my new.html.erb of links:

<h1>New link</h1>

<% form_for(@link) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :url %><br />
    <%= f.text_field :url %>
  </p>

  <%= f.collection_select(:subject, :id, @subjects, :id, :title ,
{:prompt => "Select a subject"}) %>

<p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

(in links controller, I added the second line to the scaffold-
generated controller to access the subject:
def create
1 @link = Link.new(params[:link])
2 @link.subject_id = params[:subject][:id]
3 respond_to do |format|
4 if @link.save
          ...
    )
in collection_select, user must choose subject of the link. It only
works when I omit "f." in f.collection_select although it belongs to
this form, f. Otherwise I get this error message: undefined method
`merge' for :title:Symbol
I don't know the reason.
I removed the f. to make the application work. I am not sure if this
other problem is related to the previous one or not. Now, when I add
validates_presence_of :url in my link model, in order to prevent the
user to leave this field empty, instead of showing a flash when it is
empty, I get this error messege:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.map
And it points to the line which I wrote collection_select. I can't
realise the relation of url field to collection_select!
I appreciate everyone who helps me :slight_smile: