Javascript 有一个响应按钮
我是新来的,我需要一些建议 为了解释一般概念,用户可以创建私有的配方(post)。一旦这样,用户就可以发布帖子,添加价格和数量。一堵墙引用了所有最近发表的文章 现在,我打算制作一个按钮,将我的私人帖子发布到公共墙上。我不知道该怎么做。 理想的情况是,我可以为每一次新出版编辑一个价格和数字 我目前正在构建帖子、成分、评论、用户和用户档案 应该为这个操作生成一个脚手架,还是在我的帖子中添加新闻变量 如果要查看我的代码= 邮政署署长:Javascript 有一个响应按钮,javascript,ruby-on-rails,ruby,post,Javascript,Ruby On Rails,Ruby,Post,我是新来的,我需要一些建议 为了解释一般概念,用户可以创建私有的配方(post)。一旦这样,用户就可以发布帖子,添加价格和数量。一堵墙引用了所有最近发表的文章 现在,我打算制作一个按钮,将我的私人帖子发布到公共墙上。我不知道该怎么做。 理想的情况是,我可以为每一次新出版编辑一个价格和数字 我目前正在构建帖子、成分、评论、用户和用户档案 应该为这个操作生成一个脚手架,还是在我的帖子中添加新闻变量 如果要查看我的代码= 邮政署署长: class PostsController
class PostsController 结束
restfull,您应该在/wall/posts
上有一个POST
操作:
- 拍摄
帖子的id、价格和照片
- 按ID查找
Post
- 更新价格/照片参数
- 将“public”标志设置为true
/wall/posts/:id
上执行一个DELETE
操作:
- 按ID查找
Post
- 将“public”标志设置为false
帖子
,但不会删除帖子本身
您可以将URL更改为/wall
或更漂亮的东西,但我特意使其更面向资源,这样您就可以看到发生了什么
现在,按钮本身(基于您想要更多信息的事实,我认为这意味着您需要一个表单来配合它),将需要发布到/wall/posts
所以,尽管如此,我认为这是一条“正确”的道路。但要回答我认为您要回答的问题,您还可以通过更新routes.rb
,为当前控制器添加一个单独的方法:
resources :posts do
post :publish, on: :member
end
这将产生一个类似于/posts/1/publish
或publish\u post\u path(@post)
的路由作为辅助方法。然后,您可以在posts\U控制器中创建一个名为publish
的函数来处理该路由。现在,从功能的角度来看,这似乎更符合逻辑,但它打破了REST。但是,这是可以做到的。我认为上面的说法更符合逻辑,但这只是我的想法
作为练习,您还可以使用相同的方法创建“取消发布”路线,也可以使用该路线删除墙柱。您可以为帖子添加一个标志,如is_public
,并在创建新帖子时默认将其设为false,这意味着帖子是私有的
当用户想要公开帖子时,他们需要单击按钮:
<%= link_to "- Pusher - ", post_path(post, is_public: true), method: :put, class: "btn btn-success" %>
通过这种方式,您创建了一个链接作为引导按钮,该按钮引用到:
/posts/:id,方法::put
在您的posts\u控制器中
您可以通过params[:is\u public]
捕获此信息,并成功更新您的帖子
这样,您就可以在控制器中不使用任何附加功能的情况下保持RESTfull状态。如果您澄清了问题,您将有更好的机会得到答案。你所说的响应按钮是什么意思?是的,对不起,我只是指一个按钮,我想知道你对我的建议,让我采取行动将帖子发布到公共墙上,因为有人尝试了很多方法。这张照片是我的个人资料控制器的展示,该按钮应自动更改private:boolean,并允许我编辑价格和数量,我的后租赁读数为“”和“”。它们的信息非常丰富,将帮助您了解如何询问堆栈溢出。正是我所寻找的,它工作得非常完美!谢谢
def go_public(params)
@post = Post.find(id)
@post.update_attributes(public_boolean: true)
end
resources :posts do
post :publish, on: :member
end
<%= link_to "- Pusher - ", post_path(post, is_public: true), method: :put, class: "btn btn-success" %>