Problem z routingiem

Cześć nie działa mi link to akcji show niby wszystko jest ok a jednak nie działa :wink:
link:
<% @news.each do |news| %>
<%= link_to news.title, news_path(@news) %>

<% end %>

routing:
match “news/:id” => “news#show”
match “news/” => “news#index”

Po najechaniu na link mam taki adres : http:// xxxxx:3000/news.1/2

jak zmienię link na <%= link_to news.title, news %>
to mam tak http:// xxxxx:3000/news.2

Po pierwsze, unikaj nazw zmiennych, które nie sugerują czy masz do czynienia z kolekcją, czy z pojedynczym obiektem, takich jak „news”. O wiele czytelniejsze jest:

@news.each do |news_item|

Po drugie, jak masz jakiś zasób, na którym wykonujesz akcje index i show, to zamiast odkrywać routing od nowa, poczytaj jak się to powinno robić: http://guides.rubyonrails.org/routing.html#resource-routing-the-rails-default
Jak będziesz używał konwencjonalnych rozwiązań, to będzie Ci łatwiej.

moje 0.02 zł do wypowiedzi sharnika:
ja osobiście unikam nazwy News w aplikacji - w zależności od kontekstu możesz zamienić na article, message, post, czy cokolwiek innego – nie masz wtedy problemów z nazewnictwem.
a druga sprawa, to:

<%= link_to news.title, news_path(@news) %>

przekazujesz do news_path kolekcję newsów zamiast obiekt - powinieneś zrobić news_path(news), a następnie w ramach refaktoryzacji zastosuj się do rady sharnika(i mojej :D)

Pojawił się jeszcze jeden problem do strony zrobiłem sobie mały admin panel i wygląda to tak

app/controllers/admin/movie_cover.rb
app/views/admin/movie_cover/index.html.erb i new.html.erb
model :

[code]class MovieCover < ActiveRecord::Base
attr_accessible :orginal_title, :title

end[/code]
Controller wygląda tak :

[code]
class Admin::MovieCoversController < ApplicationController
def index
end

def new
@cover = MovieCover.new
end

def create
@cover = MovieCover.new(params[:cover])
@cover.title
if @cover.save!
redirect_to admin_movie_covers_path
else
# render “new”
end
end
end[/code]
routes

namespace :admin do resources :movie_covers end
i formularz dodania nowej okładki na razie bez grafiki

[code]<%= form_for @cover , :url => admin_cover_movies_path do |form| %> // bez url sypie błędem

<%= form.label "Tytuł filmu" %>
<%= form.text_field :title %>
<%= form.label "Orginalny tytuł filmu" %>
<%= form.text_field :orginal_title %>
<%= form.submit %> <% end %>[/code] i tak parametry się przekazują widać z konsoli [code]Processing by Admin::MovieCoversController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"y6CziDbT0dSvrwSXRlDa+1EdvU459Q4PJIFkYrX8Qs0=", "movie_cover"=>{"title"=>"RailsCasts", "orginal_title"=>"RailsCasts"}, "commit"=>"Create Movie cover"}[/code] natomiast w insercie mam title => nil [code]INSERT INTO "movie_covers" ("created_at", "orginal_title", "title", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", Tue, 24 Apr 2012 19:14:10 UTC +00:00], ["orginal_title", nil], ["title", nil], ["updated_at", Tue, 24 Apr 2012 19:14:10 UTC +00:00]][/code] nie mam pojęcia już co może być skopane i dlaczego przekazują się parametry i w insercie ich nie widać.

Kontroler szuka w

params[:cover]

A w requeście to leci w

"movie_cover"=>{"title"=>"RailsCa......

fakt. Dzięki :wink: