为什么我可以在视图中为不同的控制器访问一个控制器的辅助方法?有没有办法在没有黑客攻击/修补Rails的情况下禁用它?
嗯,我知道不应该在这里问,但我没有找到一个更好的地方来得到答案.这个问题在一家好公司的采访中被问到了.
在Rails MVC中,你能从一个视图调用一个控制器的方法(理想情况下我们从helper调用)吗?如果有,怎么样?
那个时候我无法回答那个问题.你能帮忙吗?
issues_controller.rb
def index
@questions = Question.all(app_params)
end
private
def app_params
params.require(:questions).permit(:question, :answer)
end
end
Run Code Online (Sandbox Code Playgroud)
Question.rb
class Question < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)
我是不熟悉ruby-on-rails的人。我遵循了一个指南,它说我应该注意一些“漏洞”或“安全性问题”,并且使用了它attr_accessible,但是在Rails 4上,它们建议使用强参数,所以现在我尝试使用它们。我对如何定义:questions参数感到困惑,因为我目前收到一条错误消息,指出:questions未找到参数。
:questions 我将自己定义为网络开发人员。
因此,例如,我将定义问题=“你好吗?”,“你叫什么名字?”。我基本上很简单地开始。我希望将我创建的问题显示在我的网页上。最终,我计划将网站做成一个基本上是一个问题列表以及一个答案选项的网站。用户单击“提交”后,我要将信息存储到我的数据库中。
我是否应该甚至将此作为参数?我完全迷路了。
Ruby on Rails新手问题......
请考虑以下代码(在视图中):
<div class="meta">
<%= link_to time_ago_in_words(status.created_at) + " ago", status %> |
<span class="admin">
<%= link_to "Edit", edit_status_path(status) %> |
<%= link_to "Delete", status, method: :delete, data: { confirm: "Ya sure?" } %>
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
在ERB标签内调用的一些方法对我来说似乎很神奇,而我正试图揭开它们的神秘面纱.如果我不明白它是如何工作的,我觉得使用代码感觉不舒服.
有人能指出我在哪里定义和/或记录下列方法(呃,我认为它们是方法,也许这不是正确的术语)?