7

パスヘルパーメソッドを使用してlink_toにURLを生成していますが、次のような形式のURLが返されます。

http://localhost:3000/tweets.4

私がそれらがこのようにフォーマットされることを期待していたとき:

http://localhost:3000/tweets/4

予想されるスラッシュの代わりに、区切り文字としてドットを使用していることに注意してください。トップリンクは正しいビューに解決されず、/tweetsビューをリロードするだけです。手動でURLを下のように編集すると、正しい/ tweets /show/が開きます。

私がオンライン調査で見つけた最も近いことは、人々が間違ってネストされたルーティングステートメントでこれに遭遇したことでした-しかし、私はここでそれをしているとは思いません。

誰かが提供できる助けやポインタをいただければ幸いです。

関連するソースファイルとバージョン情報は次のとおりです。

ツイート/index.html.erb

<h1>Listing tweets</h1>

<% @tweets.each do |tweet| %>
<div>
    <!-- creates path in format of /tweets.2 -->
    <div><%= link_to tweet.status, tweets_path(tweet) %></div>

    <!-- creates path in the format of /user.1 -->
    <div><%= link_to tweet.user.name, users_path(tweet.user) %></div>   
</div>
<% end %>

tweets_controller.rb

class TweetsController < ApplicationController

  def index
    @tweets = Tweet.all
  end

  def show
    @tweet = Tweet.find(params[:id])
  end

  def new
    @tweet = Tweet.new
  end

  def create
    @tweet = Tweet.new(params[:tweet])
    @tweet.user = User.last

    if(@tweet.save)
      redirect_to :root
    end  
  end

  def edit
    @tweet = Tweet.find(params[:id])
  end

  def delete
  end

end

ルート.rb

Zombietweets::Application.routes.draw do
  resources :tweets
  root :to => 'tweets#index'
end  

Gemfile

source 'https://rubygems.org'

gem 'rails', '3.2.9'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.11.0'
end

group :assets do
  gem 'sass-rails',   '3.2.3'
  gem 'coffee-rails', '3.2.1'
  gem 'uglifier', '1.0.3'
end

gem 'jquery-rails', '2.0.2'

Rails3.2.9とRuby1.9.3p327(2012-11-10)を使用しています[x86_64-darwin12.2.0]

4

1 に答える 1

10

あなたは試しましたtweet_pathuser_path

show アクションにアクセスします。そのアクションでは、*_path 呼び出しでモデル名を単数形にする必要があります。

rake routes確認するには、コンソールで試してください。

編集:ルートファイル に追加することも忘れてresources :usersいます:)

于 2012-12-25T20:46:27.880 に答える