irl*_*irl 1 ruby routes ruby-on-rails
我有一个简单的网络应用程序与用户和帖子.我有一个索引控制器和视图,显示数据库中的帖子列表.使用该列表,它显示链接到特定帖子的"显示"链接.
我试图为用户复制它,但出了点问题.我有一个索引视图,显示数据库中的所有用户,我有一个"配置文件"链接,应链接到特定用户.(显示操作已用于用户自己的帐户)请参阅下面的代码,用户配置文件操作与Post Show操作相同但不起作用.
# users_controller.rb
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
def profile
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
# posts_controller.rb
def index
@posts = Post.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
end
end
def show
@post = Post.find(params[:id])
@user = User.find_by_id(@post.user_id)
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @post }
end
end
# users/index.html.erb
<h1>Listing All Users</h1>
<table>
<tr>
<th>Name</th>
<th>Email</th>
</tr>
<% @users.each do |user| %>
<tr>
<td><%= link_to user.login, user %></td>
<td><%=h user.email %></td>
</tr>
<% end %>
</table>
<br />
Run Code Online (Sandbox Code Playgroud)
我想我的路线可能有问题.但我看不到任何东西.
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
map.root :controller => "Home"
map.resource :account, :controller => "users"
map.resources :password_resets
map.resources :users
map.resource :user_session
map.root :controller => "user_sessions", :action => "new"
map.resources :users, :has_many => :posts
Run Code Online (Sandbox Code Playgroud)
当我尝试转到用户/ 1时,我得到"没有操作响应1.操作:创建,编辑,索引,新建,配置文件,显示和更新"
路线从上到下进行评估.users/1被你抓住了:controller/:action/:id,而不是map.resources :users你想要的.将这两个"默认路由"移动到文件的底部.
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |