Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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 如何把;create.html.erb“;在模态中?_Ruby On Rails_Ruby_Bootstrap Modal - Fatal编程技术网

Ruby on rails 如何把;create.html.erb“;在模态中?

Ruby on rails 如何把;create.html.erb“;在模态中?,ruby-on-rails,ruby,bootstrap-modal,Ruby On Rails,Ruby,Bootstrap Modal,new.html.erb的模式正在弹出,但不是create.html.erb。为什么? 用户单击header.html.erb上的“+Challenge”: header.html.erb 控制器的挑战 一旦用户在new.html.erb上单击f.submit,他就会被重定向到create.html.erb,因为这是过程中的:步骤2。我希望create.html.erb也处于模式中,但由于某些原因,它不是 create.html.erb 等 您这样做是错误的,因为创建操作的任务只是使用通过参数

new.html.erb
的模式正在弹出,但不是
create.html.erb
。为什么?

用户单击
header.html.erb上的“+Challenge”:

header.html.erb 控制器的挑战 一旦用户在
new.html.erb
上单击
f.submit
,他就会被重定向到
create.html.erb
,因为这是过程中的
:步骤2
。我希望
create.html.erb
也处于模式中,但由于某些原因,它不是

create.html.erb

您这样做是错误的,因为创建操作的任务只是使用通过参数传递到其中的数据创建资源

HTTP方法

这些是HTTP方法GET、POST、PUT、DELETE。其中只有GET具有与之相关的任何类型的视图,其他类型用于创建、更新和删除资源。由于创建操作属于POST类型,因此它不能有任何视图。详细信息


因此,在解决方案中,您的要求是分步从用户处获取数据,您可以使用此jquery在单个文件new.html.erb中执行此操作。表单中的每个步骤都不需要单独的文件。

感谢sghosh的帮助。我同意这家伙的回答:。它的工作原理是在模式中显示
create.html.erb
。你是说除非我改弦易辙,使用你推荐的插件,否则无法让它以模态显示吗?我知道这似乎有点骇人,但他有120K的声誉,而你的声誉不如哈里姆的修女。@AnthonyGalli.com我的观点不是说这不能做到,而是要用正确的方式(遵循惯例和模式)这就是为什么这些已经形成的原因,根据REST POST方法,它们并不意味着不用于获取用户的输入,即通过视图,顺便说一句,在编程中几乎一切都是可能的,您甚至可以在一个动作中完成。最后是你的电话,你选择哪种方式,谢谢。谢谢!我明白了。您知道如何使用create.html.erb使模式工作吗?或者为什么它不起作用?
<%= link_to new_challenge_path, data: { modal: true } do %>
  <span class="glyphicon glyphicon-plus"></span> <b>Challenge</b>
<% end %>
<%= simple_form_for(@challenge, html: { data: { modal: true } })  do |f| %>
 etc...
<% end %>
def new
  @challenge = Challenge.new
  respond_modal_with @challenge
end

def create
  @challenge = Challenge.new(challenge_params)
  if params[:step] == '2'
    respond_modal_with @challenge
    @challenge = current_user.challenges.build(challenge_params)
    @challenge.save
  end
end
<%= form_for(@challenge, html: { data: { modal: true } })  do |f| %>
  <%= hidden_field_tag :step, 2 %>
  etc...
<% end %>