Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么Rails是我的应用程序传递的唯一参数?_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 为什么Rails是我的应用程序传递的唯一参数?

Ruby on rails 为什么Rails是我的应用程序传递的唯一参数?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有一个搭建在脚手架上的Rails应用程序。出于某种原因,每当我尝试从编辑页面转到索引页面时,都会出现以下错误: ActionController::ParameterMissing in PostsController#create 它唯一的参数是真实性令牌: Parameters: {"authenticity_token"=>"foobarbazrandomcharactershere"} 控制器中的编辑和索引操作都很简单: def index @posts = Po

我有一个搭建在脚手架上的Rails应用程序。出于某种原因,每当我尝试从编辑页面转到索引页面时,都会出现以下错误:

ActionController::ParameterMissing in PostsController#create
它唯一的参数是真实性令牌:

Parameters: {"authenticity_token"=>"foobarbazrandomcharactershere"}
控制器中的编辑和索引操作都很简单:

  def index
    @posts = Post.all
    if params[:tag]
      @posts = Post.tagged_with(params[:tag])
     else
      @posts = Post.all
    end
  end

为什么它要传递真实性令牌而不传递其他参数?

它传递该令牌以防止XSSR:



我们必须查看您的编辑视图。它正在尝试访问不可用的
参数[:tag]
。我认为编辑视图是扭曲的,表单字段在表单标记之外,因此它们不会被发送回。显示编辑视图ERB/HAML及其生成的HTML,然后突出显示您试图提交的表单元素。

问题是我已将
链接更改为
按钮更改为
,默认情况下,
按钮更改为
。修复方法是将
:method
参数添加到
按钮上:

<%= button_to 'Home', posts_path, method: 'get' %>


我很困惑,您说错误发生在您试图从编辑页面导航到索引页面时,但您显示的错误表明它在
创建
方法中,这只会发生在帖子上。你能澄清一下吗?诚然,OP的标题有误导性,但这并不是他们想要的。只是出于好奇,你为什么需要使用按钮?有了正确的样式,你可以让链接看起来像一个漂亮的按钮,如果这就是你想要的,那么你就不必担心
方法:'get'
stuff.Teeg,你是对的。我发现使用link_to和一个样式化的div也能起作用,我只是想解决这个问题,而不是使用变通方法。