1
我试图从视图传递一个变量到控制器。但是,即使包含了,控制器参数也不包含参数。有人可以为我检查吗? 感谢无法从视图到控制器捕获变量传递? Rails 4
show.html.erb
<div class="col-xs-8">
<p id="notice"><%= notice %></p>
<p>
<%= image_tag @post.avatar_url(:thumb).to_s %>
<br>
<strong>Tag:</strong>
<%= @post.tag %>
</p>
<%= button_to "Add New Version", versions_path(:pid => "123"), :class => "btn btn-default", :method => :get %>
<%= link_to 'Edit', edit_post_path(@post) %> |
<%= link_to 'Back', posts_path %>
</div>
我试图点击该网页上添加新的版本... ...,它会去版本#指数
,所以这是我的版本索引。
class VersionsController < ApplicationController
layout "loginpage"
#before_action :set_version, only: [:show, :edit, :update, :destroy]
def index
@heading = "Add new version"
@effect = Effect.new
p "hello world"
p params
p params[:pid]
p @effect
p "hello owlrd"
我试图打印出PARAMS,看看是否存在一个PID PARAM,继承人的输出
Started GET "/versions" for 127.0.0.1 at 2014-10-18 19:17:28 +1100
Processing by VersionsController#index as HTML
"hello world"
{"action"=>"index", "controller"=>"versions"}
nil
#<Effect id: nil, effect1: nil, effect2: nil, effect3: nil, created_at: nil, updated_at: nil>
"hello owlrd"
好像我不能把PID为PARAMS。
的routes.rb
Rails.application.routes.draw do
resources :trashes
resources :versions
resources :effects
devise_for :users
resources :posts
resources :homes
# routing to the login page
devise_scope :user do
root :to => 'devise/sessions#new'
end
耙路线
Prefix Verb URI Pattern Controller#Action
trashes GET /trashes(.:format) trashes#index
POST /trashes(.:format) trashes#create
new_trash GET /trashes/new(.:format) trashes#new
edit_trash GET /trashes/:id/edit(.:format) trashes#edit
trash GET /trashes/:id(.:format) trashes#show
PATCH /trashes/:id(.:format) trashes#update
PUT /trashes/:id(.:format) trashes#update
DELETE /trashes/:id(.:format) trashes#destroy
versions GET /versions(.:format) versions#index
POST /versions(.:format) versions#create
new_version GET /versions/new(.:format) versions#new
edit_version GET /versions/:id/edit(.:format) versions#edit
version GET /versions/:id(.:format) versions#show
PATCH /versions/:id(.:format) versions#update
PUT /versions/:id(.:format) versions#update
DELETE /versions/:id(.:format) versions#destroy
effects GET /effects(.:format) effects#index
POST /effects(.:format) effects#create
new_effect GET /effects/new(.:format) effects#new
edit_effect GET /effects/:id/edit(.:format) effects#edit
effect GET /effects/:id(.:format) effects#show
PATCH /effects/:id(.:format) effects#update
PUT /effects/:id(.:format) effects#update
DELETE /effects/:id(.:format) effects#destroy
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy
homes GET /homes(.:format) homes#index
POST /homes(.:format) homes#create
new_home GET /homes/new(.:format) homes#new
edit_home GET /homes/:id/edit(.:format) homes#edit
home GET /homes/:id(.:format) homes#show
PATCH /homes/:id(.:format) homes#update
PUT /homes/:id(.:format) homes#update
DELETE /homes/:id(.:format) homes#destroy
root GET / devise/sessions#new
我认为这是一个路由问题,你是否设置了索引方法来接收pid作为动态段的路由。但是如果修改index方法的路由,你将面临另一个问题,所以':pid'作为动态段传递,show方法的路由将会发生冲突,因为两个路由将具有相同的签名,即'controller_name/dynamic_segment' + plus都将使用相同的'http verb' – 2014-10-18 08:32:15
让我更新它并粘贴我的routes.rb。我查了很多帖子,他们说这会起作用。 – 2014-10-18 08:37:02
你能展示从'versions_path(:pid =>“123”)生成的url吗?'你可以在浏览器中加载视图后获取这个url。 – 2014-10-18 08:39:23